當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python dask.dataframe.DataFrame.join用法及代碼示例

用法:

DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', npartitions=None, shuffle=None)

加入另一個 DataFrame 的列。

此文檔字符串是從 pandas.core.frame.DataFrame.join 複製而來的。

可能存在與 Dask 版本的一些不一致之處。

在索引或鍵列上使用other DataFrame 連接列。通過傳遞一個列表,一次有效地按索引連接多個 DataFrame 對象。

參數

otherDataFrame、Series 或 DataFrame 列表

索引應該類似於這一列中的一列。如果傳遞了 Series,則必須設置其 name 屬性,並將其用作生成的連接 DataFrame 中的列名。

onstr,str 列表,或array-like,可選

調用者中的列或索引級別名稱加入 other 中的索引,否則加入 index-on-index。如果給出多個值,other DataFrame 必須有一個 MultiIndex。如果它尚未包含在調用 DataFrame 中,則可以將數組作為連接鍵傳遞。類似於 Excel VLOOKUP 操作。

how{‘left’, ‘right’, ‘outer’, ‘inner’},默認 ‘left’

如何處理這兩個對象的操作。

  • left:使用調用框架的索引(如果指定了 on,則使用列)

  • 右:使用 other 的索引。

  • 外部:將調用框架的索引(如果指定了on,則為列)與other的索引形成聯合,並對其進行排序。按字典順序。

  • 內部:形成調用幀的索引(或指定了on的列)與other的索引的交集,保持調用的順序。

  • cross:從兩個幀創建笛卡爾積,保留左鍵的順序。

lsuffixstr,默認“”

從左框架的重疊列中使用的後綴。

rsuffixstr,默認“”

從右框架的重疊列中使用的後綴。

sortbool,默認 False(在 Dask 中不支持)

通過連接鍵按字典順序對結果 DataFrame 進行排序。如果為 False,則連接鍵的順序取決於連接類型(how 關鍵字)。

返回

DataFrame

包含來自調用者和 other 的列的 DataFrame 。

注意

傳遞 DataFrame 對象列表時,不支持參數 on , lsuffixrsuffix

在 0.23.0 版中添加了將索引級別指定為 on 參數的支持。

例子

>>> df = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'],  
...                    'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})
>>> df  
  key   A
0  K0  A0
1  K1  A1
2  K2  A2
3  K3  A3
4  K4  A4
5  K5  A5
>>> other = pd.DataFrame({'key': ['K0', 'K1', 'K2'],  
...                       'B': ['B0', 'B1', 'B2']})
>>> other  
  key   B
0  K0  B0
1  K1  B1
2  K2  B2

使用索引加入 DataFrame。

>>> df.join(other, lsuffix='_caller', rsuffix='_other')  
  key_caller   A key_other    B
0         K0  A0        K0   B0
1         K1  A1        K1   B1
2         K2  A2        K2   B2
3         K3  A3       NaN  NaN
4         K4  A4       NaN  NaN
5         K5  A5       NaN  NaN

如果我們想使用鍵列加入,我們需要將鍵設置為 dfother 中的索引。加入的 DataFrame 將以 key 作為其索引。

>>> df.set_index('key').join(other.set_index('key'))  
      A    B
key
K0   A0   B0
K1   A1   B1
K2   A2   B2
K3   A3  NaN
K4   A4  NaN
K5   A5  NaN

使用鍵列連接的另一個選項是使用 on 參數。 DataFrame.join 始終使用 other 的索引,但我們可以使用 df 中的任何列。此方法在結果中保留原始 DataFrame 的索引。

>>> df.join(other.set_index('key'), on='key')  
  key   A    B
0  K0  A0   B0
1  K1  A1   B1
2  K2  A2   B2
3  K3  A3  NaN
4  K4  A4  NaN
5  K5  A5  NaN

使用非唯一鍵值顯示它們是如何匹配的。

>>> df = pd.DataFrame({'key': ['K0', 'K1', 'K1', 'K3', 'K0', 'K1'],  
...                    'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})
>>> df  
  key   A
0  K0  A0
1  K1  A1
2  K1  A2
3  K3  A3
4  K0  A4
5  K1  A5
>>> df.join(other.set_index('key'), on='key')  
  key   A    B
0  K0  A0   B0
1  K1  A1   B1
2  K1  A2   B1
3  K3  A3  NaN
4  K0  A4   B0
5  K1  A5   B1

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.dataframe.DataFrame.join。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。