數(shù)據(jù)連接 merge

數(shù)據(jù)連接 merge

import pandas as pd
import numpy as np
df_obj1 = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
                        'data1' : np.random.randint(0,10,7)})
df_obj2 = pd.DataFrame({'key': ['a', 'b', 'd'],
                        'data2' : np.random.randint(0,10,3)})

print(df_obj1)
print(df_obj2)
   data1 key
0      5   b
1      3   b
2      7   a
3      3   c
4      7   a
5      7   a
6      3   b
   data2 key
0      9   a
1      3   b
2      8   d

默認(rèn)將重疊列的列名作為“外鍵”進行連接

pd.merge(df_obj1, df_obj2)
Paste_Image.png

on顯示指定“外鍵”

pd.merge(df_obj1, df_obj2, on='key')
Paste_Image.png

left_on,right_on分別指定左側(cè)數(shù)據(jù)和右側(cè)數(shù)據(jù)的“外鍵”

# 更改列名
df_obj1 = df_obj1.rename(columns={'key':'key1'})
df_obj2 = df_obj2.rename(columns={'key':'key2'})
pd.merge(df_obj1, df_obj2, left_on='key1', right_on='key2')
Paste_Image.png

“外連接”

pd.merge(df_obj1, df_obj2, left_on='key1', right_on='key2', how='outer')
Paste_Image.png

左連接

pd.merge(df_obj1, df_obj2, left_on='key1', right_on='key2', how='left')
Paste_Image.png

右連接

pd.merge(df_obj1, df_obj2, left_on='key1', right_on='key2', how='right')
Paste_Image.png

處理重復(fù)列名

df_obj1 = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
                        'data' : np.random.randint(0,10,7)})
df_obj2 = pd.DataFrame({'key': ['a', 'b', 'd'],
                        'data' : np.random.randint(0,10,3)})

pd.merge(df_obj1, df_obj2, on='key', suffixes=('_left', '_right'))
Paste_Image.png

按索引連接

df_obj1 = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
                        'data1' : np.random.randint(0,10,7)})
df_obj2 = pd.DataFrame({'data2' : np.random.randint(0,10,3)}, index=['a', 'b', 'd'])
pd.merge(df_obj1, df_obj2, left_on='key', right_index=True)
Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容