翼度科技»论坛 编程开发 python 查看内容

pandas 表连接的具体实现

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
在Pandas中,可以使用
  1. merge()
复制代码
函数来实现类似于SQL中的连接操作。以下是四种基本的连接类型:左连接(left join)、右连接(right join)、内连接(inner join)和外连接(outer join)的表格示例解释。
假设我们有两个DataFrame:
  1. df1
复制代码
  1. df2
复制代码
  1. import pandas as pd

  2. # 创建示例DataFrame
  3. df1 = pd.DataFrame({
  4.     'key': ['A', 'B', 'C', 'D'],
  5.     'value1': [1, 2, 3, 4]
  6. })

  7. df2 = pd.DataFrame({
  8.     'key': ['B', 'D', 'E', 'F'],
  9.     'value2': [5, 6, 7, 8]
  10. })
复制代码
1. 左连接(Left Join)

左连接返回左DataFrame(
  1. df1
复制代码
)的所有行,即使右DataFrame(
  1. df2
复制代码
)中没有匹配的行。如果右DataFrame中有匹配的行,则返回匹配的值,否则返回NaN。
  1. result_left = pd.merge(df1, df2, on='key', how='left')
  2. print(result_left)
复制代码
输出结果:
  1.   key  value1  value20   A       1     NaN1   B       2     5.02   C       3     NaN3   D       4     6.0
复制代码
2. 右连接(Right Join)

右连接返回右DataFrame(
  1. df2
复制代码
)的所有行,即使左DataFrame(
  1. df1
复制代码
)中没有匹配的行。如果左DataFrame中有匹配的行,则返回匹配的值,否则返回NaN。
  1. result_right = pd.merge(df1, df2, on='key', how='right')
  2. print(result_right)
复制代码
输出结果:
  1.   key  value1  value20   B       2     5.01   D       4     6.02   E      NaN     7.03   F      NaN     8.0
复制代码
3. 内连接(Inner Join)

内连接返回两个DataFrame中共有的匹配行。只有当两个DataFrame中都有匹配的行时,才会返回结果。
  1. result_inner = pd.merge(df1, df2, on='key', how='inner')
  2. print(result_inner)
复制代码
输出结果:
  1.   key  value1  value20   B       2     5.01   D       4     6.0
复制代码
4. 外连接(Outer Join)

外连接返回两个DataFrame中的所有行。如果某一侧没有匹配的行,则该侧的值将被设置为NaN。
  1. result_outer = pd.merge(df1, df2, on='key', how='outer')
  2. print(result_outer)
复制代码
输出结果:
  1.   key  value1  value20   A       1     NaN1   B       2     5.02   C       3     NaN3   D       4     6.04   E      NaN     7.05   F      NaN     8.0
复制代码
到此这篇关于pandas 表连接的具体实现的文章就介绍到这了,更多相关pandas 表连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/python/331268l43.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具