Python/Pandas

[Pandas] 파이썬 데이터프레임 행/열 순서(위치) 변경 방법 정리

jimmy_AI 2022. 7. 10. 22:36
반응형

Python 판다스 행, 열 순서 바꾸기 예제

파이썬 판다스 모듈에서 데이터프레임 내 행 및 열의 위치를 원하는대로 변경하는 방법들을

정리해보도록 하겠습니다.

 

용이한 이해를 위하여 아래와 같은 데이터프레임 df를 예시로 들어 설명드려 보겠습니다.

import pandas as pd

a = {'A' : ['0', '1', '2', '3', '4'], 'B' : ['00', '11', '22', '33', '44'], 'C' : ['000', '111', '222', '333', '444'], 'D' : ['0000', '1111', '2222', '3333', '4444']}
df = pd.DataFrame(a)

df

 

 

데이터프레임 행 위치 바꾸기

1. reindex 함수를 사용하는 방법

df.reindex(원하는 인덱스 순서 리스트)로 넣어

행들의 순서를 리스트에 있는 대로 재배열한 결과를 반환받을 수 있습니다.

(이 때, 특정 행을 제외하거나 같은 행을 여러 번 포함시키는 것도 가능하며,

각 행의 기존 인덱스 정보는 그대로 유지됩니다.)

df = df.reindex([0, 2, 3, 4, 1])

df

 

2. swap의 원리를 활용한 방법

만일, 특정 두 행 사이의 위치만을 변경하고 싶다면, swap의 원리를 활용하여

행의 순서를 서로 바꾸는 것이 가능합니다.

 

다음은 2번 인덱스 행과 3번 인덱스 행 사이의 위치를 바꾸는 예시입니다.

temp = df.loc[2].copy()
df.loc[2] = df.loc[3]
df.loc[3] = temp

df

단, 위 방식으로 바꾼 경우에는 각 행의 기존 인덱스 정보는 보존되지 않으니 참고하세요.

 

반응형

 

데이터프레임 열 위치 바꾸기

1. reindex 함수를 사용하는 방법

reindex 메소드로 컬럼들의 순서를 바꾸는 것도 가능합니다.

df.reindex(원하는 컬럼 이름 순서 리스트, axis = 1) 형태로

위의 행 순서 변경의 예제에서 axis 인자 값만 추가해주시면 됩니다.

df = df.reindex(['D', 'B', 'C', 'A'], axis = 1)

df

 

2. 열 이름 슬라이싱을 활용한 방법

열 이름 슬라이싱을 통하여 컬럼들 간의 순서를 재배열하는 원리로

reindex 함수 없이도 같은 결과 반환이 가능합니다.

df[원하는 컬럼 이름 순서 리스트] 형태로 바로 위와 같은 결과를 받을 수 있습니다.

column_seq = ['A', 'C', 'B', 'C']

df = df[column_seq]

df

참고로, 열 순서 변경의 1, 2번 방법 모두 특정 열을 제외하거나 2번 이상 넣는 것이 가능합니다.