본문 바로가기
Programming/Python

[Pandas] dataframe 병합, 합치기

by 느리게 걷는 즐거움 2022. 12. 13.
반응형

Pandas 데이터 프레임 병합, 합치기

Pandas 데이터프레임을 결합하기 위해서는 두개의 데이터프레임이 모두 동일하게 가지고 있는 컬럼 정보를 설정하여 병합할 수 있다. 

Join의 방법에는 inner join과 left/right 방식이 있다. Left Join을 사용하면 left 데이터 프레임의 로우 정보가 유지되기 때문에 데이터의 정보를 늘려가는 방식에 유용하게 사용될 수 있다.

######################
# Left Join / Inner Join
######################
import pandas as pd

df_1 = pd.DataFrame({'date': ['2011-01-01','2011-01-02','2011-03-01',
                              	'2011-03-02','2022-04-01','2022-04-02'],
                     	'color': ['red','blue','red','blue','green','blue'], 
                     	'height':[10,20,30,10,100,np.NaN], 
                     	'weight':[np.NaN,7,9,10,np.NaN,50]})
df_2 = pd.DataFrame({'date': ['2011-01-01', '2011-01-02' ],
                     	'status':['in-progress','in-progress']})
df_merge_left = df_1.merge(df_2, on='date', how='left')
df_merge_inner = df_1.merge(df_2, on='date')
print("")
print("<df_merge_left>")
print(df_merge_left)

print("")
print("<df_merge_inner>")
print(df_merge_inner)

================================
<df_merge_left>
         date  color  height  weight       status
0  2011-01-01    red    10.0     NaN  in-progress
1  2011-01-02   blue    20.0     7.0  in-progress
2  2011-03-01    red    30.0     9.0          NaN
3  2011-03-02   blue    10.0    10.0          NaN
4  2022-04-01  green   100.0     NaN          NaN
5  2022-04-02   blue     NaN    50.0          NaN

<df_merge_inner>
         date color  height  weight       status
0  2011-01-01   red    10.0     NaN  in-progress
1  2011-01-02  blue    20.0     7.0  in-progress
반응형