일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- SQLite
- TRUNCATE
- PostgreSQL
- seaborn
- 다중 JOIN
- MySQL
- airflow.cfg
- airflow 설치
- 머신러닝
- SUM
- matplotlib
- 데이터분석
- Round
- 데이터시각화
- hackerrank
- SQL
- pandas
- 전처리
- not in
- 데이터리안 웨비나
- having
- join
- 프로그래머스
- Oracle
- Limit
- solvesql
- 그로스해킹
- 결측값
- 파이썬
- GROUPBY
Archives
- Today
- Total
Milky's note
[Pandas] 데이터프레임 컬럼 순서 변경 본문
이전 글에서 groupby, transform으로 연산된 컬럼을 추가하였다.
그 컬럼은 데이터프레임의 가장 뒤로 추가가 되었는데 데이터프레임의 가독성을 높이기 위해서
컬럼의 순서를 재배치하는 방법을 설명하려고 한다.
1. 컬럼 순서를 직접 입력
가장 직관적이고 컬럼이 적을 때 사용할 수 있는 방법이다.
df = df[['USE_MON', 'LINE_NUM', 'SUB_STA_NM', 'FOUR_RIDE_NUM', 'FOUR_ALIGHT_NUM' ,'SUM_RIDE', 'SUM_ALIGHT']]
df
하지만 .... 이 데이터프레임의 컬럼 갯수는 54개이다.
하나씩 직접 입력하려면 ....... ㅈㅈ
2. slice 이용하기
그래서 다른 방법은 컬럼을 리스트로 만들어서 순서를 바꿀 컬럼을 A리스트로 만들고 이 컬럼을 제외한 컬럼을 B 리스트로 만든 뒤에 B + A로 순서를 재배치하여 컬럼순서를 변경하는 방법이다.
내가 순서를 변경할 컬럼은 다음과 같은데 파란색으로 표시한 컬럼을 맨 뒤로 보내려고 한다.
먼저 순서를 변경할 컬럼만 리스트로 만들어준다.
a = df.columns[-3:-2].to_list()
print('a : ', a)
a : ['WORK_DT']
그 다음으로 위에서 생성한 리스트의 컬럼만 제외하고 나머지 컬럼들을 리스트로 만들어준다.
ex_a = df.drop(columns = df.columns[[-3]]).columns[:].to_list()
# == ex_a = df.drop(['WORK_DT'], axis=1).columns[:].to_list()
print('ex_a : ', ex_a)
ex_a : ['USE_MON', 'LINE_NUM', 'SUB_STA_NM', 'FOUR_RIDE_NUM', 'FOUR_ALIGHT_NUM', ... 'THREE_RIDE_NUM', 'THREE_ALIGHT_NUM', 'SUM_RIDE', 'SUM_ALIGHT']
마지막으로 a 리스트를 ex_a 리스트 뒤에 붙여주어 컬럼의 순서를 변경한다.
reorder = ex_a + a
print('reorder : ', reorder)
reorder : ['USE_MON', 'LINE_NUM', 'SUB_STA_NM', 'FOUR_RIDE_NUM', 'FOUR_ALIGHT_NUM', ... 'THREE_RIDE_NUM', 'THREE_ALIGHT_NUM', 'SUM_RIDE', 'SUM_ALIGHT', 'WORK_DT']
컬럼 리스트를 확인하면 a리스트(WORK_DT)가 가장 뒤로 위치해있는 것을 확인 할 수 있다.
이 컬럼 리스트들로 데이터프레임을 만들어준다.
a = df.columns[-3:-2].to_list()
ex_a = df.drop(columns = df.columns[[-3]]).columns[:].to_list()
# == ex_a = df.drop(['WORK_DT'], axis=1).columns[:].to_list()
reorder = ex_a + a
df = df[reorder]
df
'Python > 요약 정리' 카테고리의 다른 글
[Python] AWS Glue에서 비동기 처리 (concurrent.futures) (1) | 2024.02.07 |
---|---|
[Pandas] 데이터프레임 컬럼 SHA256으로 암호화하기 (0) | 2024.01.08 |
[Pandas] 데이터프레임 groupby로 연산된 컬럼 추가 (transform) (0) | 2023.11.13 |
[Python] timedelta(months=n) (2) | 2023.11.13 |
[K-Digital] 자주쓰이는 pandas 정리 (0) | 2022.05.24 |
Comments