当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python pandas.DataFrame.join用法及代码示例

用法:

DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)

加入另一个 DataFrame 的列。

在索引或键列上使用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’

如何处理这两个对象的操作。

  • 左:使用调用框架的索引(或指定的列)

  • 对:使用 other 的索引。

  • 外部:将调用框架的索引(或指定的列)与 other 的索引合并,并对其进行排序。按字典顺序。

  • 内部:形成调用框架的索引(或指定了 on 的列)与 other 的索引的交集,保留调用的顺序。

  • cross:从两个帧创建笛卡尔积,保留左键的顺序。

lsuffixstr,默认“”

从左框架的重叠列中使用的后缀。

rsuffixstr,默认“”

从右框架的重叠列中使用的后缀。

sort布尔值,默认为 False

通过连接键按字典顺序对结果 DataFrame 进行排序。如果为 False,则连接键的顺序取决于连接类型(how 关键字)。

返回

DataFrame

包含来自调用者和 other 的列的 DataFrame 。

注意

传递 DataFrame 对象列表时,不支持参数 onlsuffixrsuffix

在 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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.join。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。