用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。