pandas中的连接操作:join

本文介绍了如何在Pandas中使用join操作连接DataFrame。首先,详细阐述了通过索引连接DataFrame的方法,接着讲解了通过指定列进行连接的步骤,包括如何设置连接依据和使用on参数。内容涵盖了不同类型的DataFrame连接技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、通过索引连接DataFrame

In [296]: piror = pd.DataFrame({'key1' : ['k0', 'k1', 'k2', 'k3'], 'A' : ['A0', 'A1', 'A
     ...: 2', 'A3']})

In [297]: rear = pd.DataFrame({'key2' : ['k0', 'k1', 'k2', 'k100'], 'B' : ['B0', 'B1', '
     ...: B2', 'B100']})

In [298]: piror
Out[298]:
    A key1
0  A0   k0
1  A1   k1
2  A2   k2
3  A3   k3

In [299]: rear
Out[299]:
      B  key2
0    B0    k0
1    B1    k1
2    B2    k2
3  B100  k100

In [300]: piror.join(rear, lsuffix='_piror', rsuffix='_rear')
Out[300]:
    A key1     B  key2
0  A0   k0    B0    k0
1  A1   k1    B1    k1
2  A2   k2    B2    k2
3  A3   k3  B100  k100

2、通过指定的列连接DataFrame

In [313]: piror.set_index('key1').join(rear.set_index('key2'))
Out[313]:
       A    B
key1
k0    A0   B0
k1    A1   B1
k2    A2   B2
k3    A3  NaN

通过指定索引进行join连接:

# 指定piror中的key1为索引,将rear数据中的key2所指的与piror中相同的索引值所指向的元素合并
In [313]: piror.set_index('key1').join(rear.set_index('key2'))
Out[313]:
       A    B
key1
k0    A0   B0
k1    A1   B1
k2    A2   B2
k3    A3  NaN

指定连接的列设置为rear数据中的‘key2’索引,再用on指定piror的连接列。

In [314]: piror.join(rear.set_index('key2'), on='key1')
Out[314]:
    A key1    B
0  A0   k0   B0
1  A1   k1   B1
2  A2   k2   B2
3  A3   k3  NaN

In [315]: piror.join(rear.set_index('key2'), on='key1', how='inner')
Out[315]:
    A key1   B
0  A0   k0  B0
1  A1   k1  B1
2  A2   k2  B2

其他连接:

# 右连接
In [316]: piror.join(rear, how='right', lsuffix='_piror', rsuffix='_rear')
Out[316]:
    A key1     B  key2
0  A0   k0    B0    k0
1  A1   k1    B1    k1
2  A2   k2    B2    k2
3  A3   k3  B100  k100

# 外连接
In [317]: piror.join(rear.set_index('key2'), on='key1', how='outer')
Out[317]:
     A  key1     B
0   A0    k0    B0
1   A1    k1    B1
2   A2    k2    B2
3   A3    k3   NaN
3  NaN  k100  B100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值