当前位置:   article > 正文

Python - Pandas Dataframe的合并Merge_python pandas dataframe merge

python pandas dataframe merge

本文摘要:

Pandas的merge相当于SQL的join,将不同的表按共有的列属性关联起来。
在这里插入图片描述

merge实例

现有数据 df_ratings 如下
在这里插入图片描述
df_users 如下
在这里插入图片描述
df_movies 如下
在这里插入图片描述
how=‘innder’ 内连接,表示两表都有同一UserID才会保留,否则丢弃。

import pandas as pd
df_ratings_users = pd.merge(
	df_ratings, df_users, left_on='UserID', right_on='UserID', how='inner'
)
  • 1
  • 2
  • 3
  • 4

返回结果
在这里插入图片描述

df_ratings_users_movies = pd.merge(
	df_ratings_users, df_movies, left_on='MovieID', right_on='MovieID', how='inner'
)
  • 1
  • 2
  • 3

merge时数量关系

在这里插入图片描述
一对一关系:

# one-to-one
left = pd.DataFrame({
	'sno': [11,12,13,14],
	'name': ['name_a','name_b','name_c','name_d']
})

right = pd.DataFrame({
	'sno': [11,12,13,14],
	'age': [11,12,13,14]
})

pd.merge(left, right, on='sno')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

一对多关系:
在这里插入图片描述

# one-to-many
pd.merge(left, right, on='sno')
  • 1
  • 2

返回结果
在这里插入图片描述
多对多关系:
在这里插入图片描述

# many-to-many
pd.merge(left, right, on='sno')
  • 1
  • 2

返回结果
在这里插入图片描述

left join、right join、inner join、outer join的区别

在这里插入图片描述
下面指的都是Key,交集指该Key列的值两表都存在。
Left join:保留完整的左表 和 交集
Right join:保留完整的右表 和 交集
Inner join:只保留交集
Full Outer join:全保留

下面演示一下

left = pd.DataFrame({
	'key': ['K0', 'K1', 'K2', 'K3'],
	'A': ['A0', 'A1', 'A2', 'A3'],
	'B': ['B0', 'B1', 'B2', 'B3']
})

right = pd.DataFrame({
	'key': ['K0', 'K1', 'K4', 'K5'],
	'C': ['C0', 'C1', 'C4', 'C5'],
	'D': ['D0', 'D1', 'D4', 'D5']
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

inner join:

pd.merge(left, right, how='inner')
  • 1

两表共有的只有K0,K1,所以inner join只保留了这两行
在这里插入图片描述
left join:

pd.merge(left, right, how='left')
  • 1

保留左表所有Key,K2、K3没有C、D列所以为NaN
在这里插入图片描述
right join:

pd.merge(left, right, how='right')
  • 1

保留右表所有Key,K4、K5没有A、B列所以为NaN
在这里插入图片描述
outer join:

pd.merge(left, right, how='outer')
  • 1

保留两表所有Key,没有对应的列则为NaN
在这里插入图片描述
*此文仅为个人笔记

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/663901
推荐阅读
相关标签
  

闽ICP备14008679号