Merging, Joining, and Concatenating

Example DataFrames

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                        'B': ['B0', 'B1', 'B2', 'B3'],
                        'C': ['C0', 'C1', 'C2', 'C3'],
                        'D': ['D0', 'D1', 'D2', 'D3']},
                        index=[0, 1, 2, 3])
                        
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
                        'B': ['B4', 'B5', 'B6', 'B7'],
                        'C': ['C4', 'C5', 'C6', 'C7'],
                        'D': ['D4', 'D5', 'D6', 'D7']},
                         index=[4, 5, 6, 7])   
                         
df3 = pd.DataFrame({'A': ['A8', 'A9', 'A10', 'A11'],
                        'B': ['B8', 'B9', 'B10', 'B11'],
                        'C': ['C8', 'C9', 'C10', 'C11'],
                        'D': ['D8', 'D9', 'D10', 'D11']},
                        index=[8, 9, 10, 11])                       

 

Concatenation

Concatenation basically glues together DataFrames.

Keep in mind that dimensions should match along the axis you are concatenating on.

You can use  pd.concat  and pass in a list of DataFrames to concatenate together:

pd.concat([df1,df2,df3])
pd.concat([df1,df2,df3],axis=1)  #  열로 합치기 

 


Example DataFrames

left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                     'A': ['A0', 'A1', 'A2', 'A3'],
                     'B': ['B0', 'B1', 'B2', 'B3']})
   
right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                          'C': ['C0', 'C1', 'C2', 'C3'],
                          'D': ['D0', 'D1', 'D2', 'D3']})    

 

Merging

pd.merge(left, right, how='inner', on='key') # 'key'를 중심으로 merge하기! 내부 조인사용(디폴트)
'''
	A	B	key	C	D

0	A0	B0	K0	C0	D0
1	A1	B1	K1	C1	D1
2	A2	B2	K2	C2	D2
3	A3	B3	K3	C3	D3
'''

더 복잡한 예제로 해보기:

left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
                     'key2': ['K0', 'K1', 'K0', 'K1'],
                        'A': ['A0', 'A1', 'A2', 'A3'],
                        'B': ['B0', 'B1', 'B2', 'B3']})
    
right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
                               'key2': ['K0', 'K0', 'K0', 'K0'],
                                  'C': ['C0', 'C1', 'C2', 'C3'],
                                  'D': ['D0', 'D1', 'D2', 'D3']})
pd.merge(left, right, on=['key1', 'key2'])  # 여러개의 키를 중심으로 merge하기

pd.merge(left, right, how='outer', on=['key1', 'key2']) # outer 조인 

pd.merge(left, right, how='right', on=['key1', 'key2'])  # right 조인 

pd.merge(left, right, how='left', on=['key1', 'key2'])   # left 조인

 

Joining

left = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                     'B': ['B0', 'B1', 'B2']},
                      index=['K0', 'K1', 'K2']) 

right = pd.DataFrame({'C': ['C0', 'C2', 'C3'],
                    'D': ['D0', 'D2', 'D3']},
                      index=['K0', 'K2', 'K3'])
left.join(right)
'''
	A	B	C	D

K0	A0	B0	C0	D0
K1	A1	B1	NaN	NaN
K2	A2	B2	C2	D2
'''

left.join(right, how='outer')
'''
	A	B	C	D

K0	A0	B0	C0	D0
K1	A1	B1	NaN	NaN
K2	A2	B2	C2	D2
K3	NaN	NaN	C3	D3
'''

 

 

Great Job!

'Python > Numpy & Pandas' 카테고리의 다른 글

07-Data Input and Output  (0) 2020.12.01
06-Operations  (0) 2020.12.01
04-Groupby  (0) 2020.12.01
03-Missing Data  (0) 2020.12.01
02-DataFrames  (0) 2020.11.30
블로그 이미지

hjc_

୧( “̮ )୨

,