python中的join函数连接dataframe_python中的join函数连接dataframe_python pandas DataFrame.

连接另一个DataFrame的列。

与连接列other索引或键列上的DataFrame。通过传递一个列表,一次有效地通过索引连接多个DataFrame对象。

参数:

other:DataFrame, Series, 或 list of DataFrame索引应与此列中的一列相似。如果传递了Series,则必须设置其name属性,并将其用作结果联接的DataFrame中的列名称。

on:str, list of str, 或 array-like, 可选参数调用方中要加入索引的列或索引级别名称other,否则加入index-on-index。如果给出多个值,则otherDataFrame必须具有MultiIndex。如果调用DataFrame中尚未包含数组,则可以将其作为连接键传递。就像Excel的VLOOKUP操作一样。

how:{‘left’, ‘right’, ‘outer’, ‘inner’}, 默认为 ‘left’如何处理两个对象的操作。

左:使用调用框架的索引(如果指定了列,则为列)

右:使用other的索引。

external:与调用框架的索引(如果指定为on,则为列)的形式联合other的索引,然后对其进行排序。从字典上看。

inner:与调用框架的索引(或列,如果指定为on)形成交集,other的索引,保留调用顺序。

lsuffix:str, 默认为 ‘’在左框架的重叠列中使用的后缀。

rsuffix:str, 默认为 ‘’在右框架的重叠列中使用的后缀。

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

返回值:

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

注意:

参数on, lsuffix和rsuffix传递列表时不支持DataFrame对象。

支持将索引级别指定为on参数已在0.23.0版本中添加。

例子:

>>> 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

使用其索引加入DataFrames。

>>> 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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值