python
主页 > 脚本 > python >

pandas表连接的具体实现介绍

2024-11-25 | 佚名 | 点击:

在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

 

原文链接:
相关文章
最新更新