用法:
DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', npartitions=None, shuffle=None)
加入另一個 DataFrame 的列。
此文檔字符串是從 pandas.core.frame.DataFrame.join 複製而來的。
可能存在與 Dask 版本的一些不一致之處。
在索引或鍵列上使用
other
DataFrame 連接列。通過傳遞一個列表,一次有效地按索引連接多個 DataFrame 對象。- other:DataFrame、Series 或 DataFrame 列表
索引應該類似於這一列中的一列。如果傳遞了 Series,則必須設置其 name 屬性,並將其用作生成的連接 DataFrame 中的列名。
- on:str,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:從兩個幀創建笛卡爾積,保留左鍵的順序。
- lsuffix:str,默認“”
從左框架的重疊列中使用的後綴。
- rsuffix:str,默認“”
從右框架的重疊列中使用的後綴。
- sort:bool,默認 False(在 Dask 中不支持)
通過連接鍵按字典順序對結果 DataFrame 進行排序。如果為 False,則連接鍵的順序取決於連接類型(how 關鍵字)。
- DataFrame
包含來自調用者和
other
的列的 DataFrame 。
參數:
返回:
注意:
傳遞
DataFrame
對象列表時,不支持參數on
,lsuffix
和rsuffix
。在 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
如果我們想使用鍵列加入,我們需要將鍵設置為
df
和other
中的索引。加入的 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
相關用法
- Python dask.dataframe.DataFrame.applymap用法及代碼示例
- Python dask.dataframe.DataFrame.sub用法及代碼示例
- Python dask.dataframe.DataFrame.mod用法及代碼示例
- Python dask.dataframe.DataFrame.cummin用法及代碼示例
- Python dask.dataframe.DataFrame.truediv用法及代碼示例
- Python dask.dataframe.DataFrame.round用法及代碼示例
- Python dask.dataframe.DataFrame.ne用法及代碼示例
- Python dask.dataframe.DataFrame.partitions用法及代碼示例
- Python dask.dataframe.DataFrame.to_bag用法及代碼示例
- Python dask.dataframe.DataFrame.any用法及代碼示例
- Python dask.dataframe.DataFrame.itertuples用法及代碼示例
- Python dask.dataframe.DataFrame.count用法及代碼示例
- Python dask.dataframe.DataFrame.memory_usage用法及代碼示例
- Python dask.dataframe.DataFrame.describe用法及代碼示例
- Python dask.dataframe.DataFrame.to_parquet用法及代碼示例
- Python dask.dataframe.DataFrame.groupby用法及代碼示例
- Python dask.dataframe.DataFrame.fillna用法及代碼示例
- Python dask.dataframe.DataFrame.iterrows用法及代碼示例
- Python dask.dataframe.DataFrame.idxmax用法及代碼示例
- Python dask.dataframe.DataFrame.rmul用法及代碼示例
注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.dataframe.DataFrame.join。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。