亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pandas中如何使用merge函數

發布時間:2022-03-29 10:14:38 來源:億速云 閱讀:237 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關pandas中如何使用merge函數的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

merge

merge函數方法類似SQL里的join,可以是pd.merge或者df.merge,區別就在于后者待合并的數據是

pd.merge(
    left: 'DataFrame | Series',
    right: 'DataFrame | Series',
    how: 'str' = 'inner',
    on: 'IndexLabel | None' = None,
    left_on: 'IndexLabel | None' = None,
    right_on: 'IndexLabel | None' = None,
    left_index: 'bool' = False,
    right_index: 'bool' = False,
    sort: 'bool' = False,
    suffixes: 'Suffixes' = ('_x', '_y'),
    copy: 'bool' = True,
    indicator: 'bool' = False,
    validate: 'str | None' = None,
) -> 'DataFrame'

在函數方法中,關鍵參數含義如下:

  • left: 用于連接的左側數據

  • right: 用于連接的右側數據

  • how: 數據連接方式,默認為 inner,可選outer、left和right

  • on: 連接關鍵字段,左右側數據中需要都存在,否則就用left_on和right_on

  • left_on: 左側數據用于連接的關鍵字段

  • right_on: 右側數據用于連接的關鍵字段

  • left_index: True表示左側索引為連接關鍵字段

  • right_index: True表示右側索引為連接關鍵字段

  • suffixes: ‘Suffixes’ = (’_x’, ‘_y’),可以自由指定,就是同列名合并后列名顯示后綴

  • indicator: 是否顯示合并后某行數據的歸屬來源

接下來,我們就對該函數功能進行演示

基礎合并

In [55]: df1 = pd.DataFrame({'key': ['foo', 'bar', 'bal'],
    ...:                     'value2': [1, 2, 3]})

In [56]: df2 = pd.DataFrame({'key': ['foo', 'bar', 'baz'],
    ...:                     'value1': [5, 6, 7]})

In [57]: df1.merge(df2)
Out[57]: 
   key  value2  value1
0  foo       1       5
1  bar       2       6

其他連接方式

In [58]: df1.merge(df2, how='left')
Out[58]: 
   key  value2  value1
0  foo       1     5.0
1  bar       2     6.0
2  bal       3     NaN

In [59]: df1.merge(df2, how='right')
Out[59]: 
   key  value2  value1
0  foo     1.0       5
1  bar     2.0       6
2  baz     NaN       7

In [60]: df1.merge(df2, how='outer')
Out[60]: 
   key  value2  value1
0  foo     1.0     5.0
1  bar     2.0     6.0
2  bal     3.0     NaN
3  baz     NaN     7.0

In [61]: df1.merge(df2, how='cross')
Out[61]: 
  key_x  value2 key_y  value1
0   foo       1   foo       5
1   foo       1   bar       6
2   foo       1   baz       7
3   bar       2   foo       5
4   bar       2   bar       6
5   bar       2   baz       7
6   bal       3   foo       5
7   bal       3   bar       6
8   bal       3   baz       7

指定連接鍵

可以指定單個連接鍵,也可以指定多個連接鍵

In [62]: df1 = pd.DataFrame({'lkey1': ['foo', 'bar', 'bal'],
    ...:                     'lkey2': ['a', 'b', 'c'],
    ...:                     'value2': [1, 2, 3]})

In [63]: df2 = pd.DataFrame({'rkey1': ['foo', 'bar', 'baz'],
    ...:                     'rkey2': ['a', 'b', 'c'],
    ...:                     'value2': [5, 6, 7]})
    
In [64]: df1
Out[64]: 
  lkey1 lkey2  value2
0   foo     a       1
1   bar     b       2
2   bal     c       3

In [65]: df2
Out[65]: 
  rkey1 rkey2  value2
0   foo     a       5
1   bar     b       6
2   baz     c       7

In [66]: df1.merge(df2, left_on='lkey1', right_on='rkey1')
Out[66]: 
  lkey1 lkey2  value2_x rkey1 rkey2  value2_y
0   foo     a         1   foo     a         5
1   bar     b         2   bar     b         6

In [67]: df1.merge(df2, left_on=['lkey1','lkey2'], right_on=['rkey1','rkey2'])
Out[67]: 
  lkey1 lkey2  value2_x rkey1 rkey2  value2_y
0   foo     a         1   foo     a         5
1   bar     b         2   bar     b         6

指定索引為鍵

Out[68]: df1.merge(df2, left_index=True, right_index=True)
Out[68]: 
  lkey1 lkey2  value2_x rkey1 rkey2  value2_y
0   foo     a         1   foo     a         5
1   bar     b         2   bar     b         6
2   bal     c         3   baz     c         7

設置重復列后綴

In [69]: df1.merge(df2, left_on='lkey1', right_on='rkey1', suffixes=['左','右'])
Out[69]: 
  lkey1 lkey2  value2左 rkey1 rkey2  value2右
0   foo     a        1   foo     a        5
1   bar     b        2   bar     b        6

連接指示

新增一列用于顯示數據來源

In [70]: df1.merge(df2, left_on='lkey1', right_on='rkey1', suffixes=['左','右'], how='outer',
    ...:           indicator=True
    ...:       )
Out[70]: 
  lkey1 lkey2  value2左 rkey1 rkey2  value2右      _merge
0   foo     a      1.0   foo     a      5.0        both
1   bar     b      2.0   bar     b      6.0        both
2   bal     c      3.0   NaN   NaN      NaN   left_only
3   NaN   NaN      NaN   baz     c      7.0  right_only

感謝各位的閱讀!關于“pandas中如何使用merge函數”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

咸宁市| 平凉市| 本溪市| 临沂市| 潢川县| 松溪县| 沙雅县| 綦江县| 许昌市| 肃南| 陆川县| 渝北区| 佳木斯市| 墨脱县| 隆化县| 沅江市| 迁安市| 万年县| 宜丰县| 高安市| 宜春市| 开化县| 石台县| 贵溪市| 荣成市| 辽源市| 宜兰县| 皋兰县| 夏河县| 山东省| 台中县| 永州市| 绍兴县| 呈贡县| 泰兴市| 旬邑县| 平和县| 青神县| 深泽县| 漯河市| 留坝县|