본문 바로가기
판다스/판다스 팁

[pandas] 데이터 프레임 2개를 concat할 때 열을 교대로 concat하는 방법

by 김판다t 2023. 5. 4.

다음 두개의 데이터 프레임이 있다

 

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