다음 두개의 데이터 프레임이 있다
import pandas as pd
data1 = [[1, 2, 3], [4, 5, 6]]
data2 = [[5, 2, 4], [3, 5, 1]]
df1 = pd.DataFrame(data1, columns=['a1', 'd1', 'c1'])
df2 = pd.DataFrame(data2, columns=['a2', 'd2', 'c2'])
df1
df2
df1과 df2의 열을 교대로 합쳐보자. 열의 순서가 a1-a2-d1-d2-c1-c2가 되면 된다
그냥 concat한 다음에 sort_index 함수로 정렬을 하면 그저 a1-a2-c1-c2-d1-d2의 순서가 되므로 가능하지 않다
다음의 방법을 사용하자
1. 먼저 df1.columns와 df2.columns를 교대로 합친다
sum(list(zip(df1.columns, df2.columns)), ())
('a1', 'a2', 'd1', 'd2', 'c1', 'c2')
2. 위 결과를 변수 cols로 지정하고 df1과 df2를 concat한 뒤 cols로 reindex를 하면 된다
cols = sum(list(zip(df1.columns, df2.columns)), ())
pd.concat([df1, df2], axis=1).reindex(cols, axis=1)
output:
완성이다
유튜브에서 판다스 강의 중입니다
https://www.youtube.com/@KimPandas
'판다스 > 판다스 팁' 카테고리의 다른 글
[pandas] 데이터 프레임에서 퍼센트(%)로 수치를 표기하는 방법 (0) | 2023.05.26 |
---|---|
[pandas] 주피터 노트북에서 여러개의 데이터 프레임을 가로로 출력하기 (0) | 2023.05.26 |
[pandas] 구글 코랩과 주피터 노트북 비교 : 파일에서 데이터 프레임을 불러오는 방식의 차이 (0) | 2023.05.25 |
[pandas] assign 함수로 열을 만들 때 특수문자가 있는 경우 해결 방법 (0) | 2023.05.03 |
[pandas] 24시를 넘는 시간표기를 정상적인 datetime으로 바꾸는 방법 (0) | 2023.05.02 |