반응형
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번 이상 넣는 것이 가능합니다.
'Python > Pandas' 카테고리의 다른 글
[Pandas] 판다스 설치 / 버전 확인 / 버전 변경(업데이트, 다운그레이드) 방법 정리 (0) | 2022.08.15 |
---|---|
[Pandas] 파이썬 데이터프레임 행/열 밀기(옮기기) 방법 정리 : df.shift() (5) | 2022.06.21 |
[Pandas] 파이썬 데이터프레임에서 SQL 쿼리로 데이터 가져오기(feat. pandasql 모듈의 sqldf 함수) (0) | 2022.06.19 |