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])
print("*** df1 ***")
print(df1)
print('\n')
print("*** df2 ***")
print(df2)
print('\n')
print("*** df3 ***")
print(df3)
print('\n')
print("**** Concatenatiion *****")
# Concatenation basically glues together DataFrames.
# Keep in mind that dimensions should match along the axis you are concatenating on.
print(pd.concat([df1,df2,df3]))
print('\n')
print(pd.concat([df1,df2,df3],axis=1))
print('\n')
print("***** 另外一个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']})
print(left)
print('\n')
print(right)
print('\n')
print("***** Merging *****")
# The merge function allows you to merge DataFrames together using a similar logic as merging SQL Tables together.
print('inner result:')
print(pd.merge(left,right,how='inner',on='key')) # use intersection of keys from both frames, similar SQL inner join
print('\n')
print('left result:')
print(pd.merge(left,right,how='left',on='key')) # use only keys from left frame, similar to a SQL left outer join
print('\nright result:')
print(pd.merge(left,right,how='right',on='key')) # use only keys from right frames, similar to a SQL right outer join
print('\nouter result:')
print(pd.merge(left,right,how='outer',on='key')) # use union of keys from both frames, similar to a SQL full outer join
print("*** 另外一个Data ***")
left_new = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K1'],
'key2': ['K0', 'K1', 'K0', 'K1'],
'A': ['A0','A1','A2','A3'],
'B': ['B0','B1','B2','B3']})
right_new = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
'key2': ['K0','K0','K0','K0'],
'C': ['C0','C1','C2','C3'],
'D': ['D0','D1','D2','D3']})
print(left_new)
print('\n')
print(right_new)
print('\n')
print("***** 相同的key合在一起 *****")
print(pd.merge(left_new,right_new,on=['key1','key2']))
print('\n')
print("*** outer ****")
print(pd.merge(left_new,right_new, how='outer', on=['key1','key2'])) # use union of keys from both frames, similar to a SQL full outer join
print('\n')
print("***** right 以key2所对应的表为准 *****")
print(pd.merge(left_new,right_new, how='right', on=['key1','key2'])) # use only keys from right frames, similar to a SQL right outer join
print('\n')
print("***** left 以key1所对应的表为准 ******")
print(pd.merge(left_new,right_new, how='left', on=['key1','key2'])) # use only keys from left frame, similar to a SQL left outer join
print('\n')
print("**** inner 找两个表共同部分 *****")
print(pd.merge(left_new,right_new, how='inner', on=['key1','key2'])) # use intersection of keys from both frames, similar SQL inner join
print('\n')
print("***** Joining ******")
# Joining is a convenient method for combining the columns of two potentially differently-indexed DataFrames into a single result DataFrame.
left_new_one = pd.DataFrame({'A': ['A0','A1','A2'],
'B': ['B0','B1','B2']},
index = ['K0','K1','K2'])
right_new_one = pd.DataFrame({'C': ['C0','C2','C3'],
'D': ['D0','D2','D3']},
index = ['K0','K2','K3'])
print(left_new_one)
print('\n')
print(right_new_one)
print('\n')
print("**** join 找共同点 ****")
print(left_new_one.join(right_new_one))
print('\n')
print("**** outer join *****")
print(left_new_one.join(right_new_one, how='outer')) # use union of keys from both frames, similar to a SQL full outer join
print('\n')
print("**** inner *****")
print(left_new_one.join(right_new_one, how='inner')) # use intersection of keys from both frames, similar SQL inner join
print('\n')
print("*** left 以left_new_one为准 ****")
print(left_new_one.join(right_new_one, how='left')) # use only keys from left frame, similar to a SQL left outer join
print('\n')
print("*** right 以right_new_one为准 ****")
print(left_new_one.join(right_new_one, how='right')) # use only keys from right frames, similar to a SQL right outer join
结果如下:
如果觉得不错,就点赞或者关注或者留言~ ~
谢谢 ~ ~