pandas_多表拼接

本文详细介绍了Pandas库中的表拼接操作,包括横向拼接(连接表的类型、连接键的处理、连接方式及重复列名的处理)和纵向拼接(普通合并、索引设置和重叠数据合并)。重点讲解了merge方法的用法以及如何处理不同类型的连接键和重复列名问题。
摘要由CSDN通过智能技术生成

pandas 多表拼接

1.表的横向拼接

表的横向拼接就是在横向将两个表依据公共列拼接在一起。

1.1 连接表的类型

连接表的类型关注的就是待连接的两个表都是什么类型,主要有3种情况:一对一、多对一、多对多。

  • 一对一:一对一就是待连接的两个表的公共列是一对一的
  • 多对多:待连接的两个表的公共列不是一对一的,且两个表中的公共列都有重复值,多对多连接相当于多个多对一连接
print(pd.merge(df1,df2))

pd.merge() 方法即可,该方法会自动寻找两个表中的公共列,并将找到的公共列作为连接列。

  • 多对一:待连接的两个表的公共列不是一对一的,其中一个表的公共列有重复值,另一个表的公共列是唯一的。
print(pd.merge(df1,df2,on = "学号"))

1.2 连接键的类型

默认以公共列作为连接键:如果事先没有指定要按哪个列进行拼接时,pd.merge()方法会默认寻找两个表中的公共列,然后以这个公共列作为连接键进行连接(示例见图1-1,1-2)

用on来指定连接键:也可以用参数on来指定连接键,参数on一般指定的也是两个表中的公共列,其实这个时候和使用默认公共列达到的效果是一样的(示例见图1-3)

公共列可以有多列,也就是连接键可以有多个:


print(df1)
print(df2)
print(pd.merge(df1,df2,on = ["姓名","学号"]))

分别指定左右连接键:当两个表中没有公共列时,这里指的是实际值一样,但列名不同,否则就无法连接了。这个时候要分别指定左表和右表的连接键,使用的参数分别是left_onrigth_on, left_on用来指明左表用作连接键的列名,right_on用来指明右表用作连接键的列名。

print(df1)
print(df2)
  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值