多表横向连接——merge()
Python中使用merge()方法来实现多表的横向连接,根据参数how的值,可以进行类似sql中的左右内外的连接方式。
-
格式:
merge ( left, right, how: str = ‘inner’, on=None, left_on=None, right_on=None, left_index: bool = False, right_index: bool = False, sort: bool = False, suffixes=(’_x’, ‘_y’), copy: bool = True, indicator: bool = False, validate=None ) -
参数:
left:被链接的左表
right:被链接的右表
how:表的连接方式,类似sql。有{‘left’, ‘right’, ‘outer’, ‘inner’},四种,默认 inner
on:两个表进行连接的参照列,为默认值None时,
left_on:左侧表连接匹配列
right_on:右侧表连接匹配列
left_index:左侧表连接索引
right_index:右侧表连接索引
sort:对结果表进行排序
suffixes:对于两个表都有重复列,自动添加’_x’, '_y’后缀
indicator:在结果表中增加一列,用于显示数据来自哪个表中 -
创建DataFrame
import pandas as pd
df1 = pd.DataFrame({
"id":range(5),"姓名":list('abcde')})
df2 = pd.DataFrame({
"id":range(5),"成绩":[95,84,66,85,71]})
df3 = pd.DataFrame({
"id":[1,1,2,3,3,3,4,4,0],"成绩":[95,84,63,68,87,75,68,97,58]})
print(df1)
print(df2)
print(df3)
# 返回
id 姓名
0 0 a
1 1 b
2 2 c
3 3 d
4 4 e
id 成绩
0 0 95
1 1 84
2 2 66
3 3 85
4 4 71
id 成绩
0 1 95
1 1 84
2 2 63
3 3 68
4 3 87
5 3 75
6 4 68
7 4 97

本文详细介绍了Pandas中的多表连接方法,包括横向连接(merge)和纵向连接(concat)。merge()方法支持类似SQL的连接方式,如left、right、outer和inner连接,可以根据指定列或索引进行连接。而concat()方法则用于纵向连接,通过axis参数也可实现横向连接。文中通过实例展示了各种连接方式及其参数的使用,包括连接列的选择、列名处理、索引的使用以及连接方式的影响等。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



