在Pandas中,可以使用merge()
函数来实现类似于SQL中的连接操作。以下是四种基本的连接类型:左连接(left join)、右连接(right join)、内连接(inner join)和外连接(outer join)的表格示例解释。
假设我们有两个DataFrame:df1
和 df2
。
1 2 3 4 5 6 7 8 9 10 11 12 | import pandas as pd # 创建示例DataFrame df1 = pd.DataFrame({ 'key' : [ 'A' , 'B' , 'C' , 'D' ], 'value1' : [ 1 , 2 , 3 , 4 ] }) df2 = pd.DataFrame({ 'key' : [ 'B' , 'D' , 'E' , 'F' ], 'value2' : [ 5 , 6 , 7 , 8 ] }) |
1. 左连接(Left Join)
左连接返回左DataFrame(df1
)的所有行,即使右DataFrame(df2
)中没有匹配的行。如果右DataFrame中有匹配的行,则返回匹配的值,否则返回NaN。
1 2 | result_left = pd.merge(df1, df2, on = 'key' , how = 'left' ) print (result_left) |
输出结果:
key value1 value2
0 A 1 NaN
1 B 2 5.0
2 C 3 NaN
3 D 4 6.0
2. 右连接(Right Join)
右连接返回右DataFrame(df2
)的所有行,即使左DataFrame(df1
)中没有匹配的行。如果左DataFrame中有匹配的行,则返回匹配的值,否则返回NaN。
1 2 | result_right = pd.merge(df1, df2, on = 'key' , how = 'right' ) print (result_right) |
输出结果:
key value1 value2
0 B 2 5.0
1 D 4 6.0
2 E NaN 7.0
3 F NaN 8.0
3. 内连接(Inner Join)
内连接返回两个DataFrame中共有的匹配行。只有当两个DataFrame中都有匹配的行时,才会返回结果。
1 2 | result_inner = pd.merge(df1, df2, on = 'key' , how = 'inner' ) print (result_inner) |
输出结果:
key value1 value2
0 B 2 5.0
1 D 4 6.0
4. 外连接(Outer Join)
外连接返回两个DataFrame中的所有行。如果某一侧没有匹配的行,则该侧的值将被设置为NaN。
1 2 | result_outer = pd.merge(df1, df2, on = 'key' , how = 'outer' ) print (result_outer) |
输出结果:
key value1 value2
0 A 1 NaN
1 B 2 5.0
2 C 3 NaN
3 D 4 6.0
4 E NaN 7.0
5 F NaN 8.0
到此这篇关于pandas 表连接的具体实现的文章就介绍到这了,更多相关pandas 表连接内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!