python利用pandas对两张excel表合并(三)

昨天,我在python利用pandas对两张excel表合并(二)一文中对两张表按列merge时on的用法。今天分享一下,merge传参时,另一个参数how的方法。在学完how的用法之后,对两张表的合并学习基本上就结束了。
1、如下图所示:
在这里插入图片描述
左表中name分别是:bob, millor, jiken。右表中name有bob, millor, lucy。左表有jiken而没有lucy, 右表有lucy而没有jiken。
how参数有4个值{‘inner’, ‘outer’, ‘right’,‘left’}听起来可能会让人觉得繁琐,看完下面的例子用法很快就会明白。
2、代码:

# 当how为inner时,同时,how的默认值也是inner
>>> import pandas as pd
>>> df1 = pd.read_excel(r'D:/myExcel/1.xlsx', 'Sheet1')
>>> df2 = pd.read_excel(r'D:/myExcel/2.xlsx', 'Sheet1')
    # df1就是上述左表,df2就是上图中的右表
>>> df = pd.merge(df1, df2, how='inner', on=['name'])
	# 有结果可知,当how为inner时,做左右表连接实际取的是name的交集,即两表
	#name中的共同部分
>>> df
     name  math  Chinese
0     bob    23       21
1  millor    32       19

# 当how为outer时,取的是name的并集,无值的补为NAN,空值的意思
>>> df = pd.merge(df1, df2, how='outer', on=['name'])
>>> df
     name  math  Chinese
0     bob  23.0     21.0
1  millor  32.0     19.0
2   jiken  45.0      NaN
3    lucy   NaN     86.0

# 当how为left时,即以左表的name的值为标准,左表的name必须保留,右表的name中有值
# 而左表没有则删除
>>> df = pd.merge(df1, df2, how='left', on=['name'])
   # 结果有jiken却没有lucy
>>> df
     name  math  Chinese
0     bob    23     21.0
1  millor    32     19.0
2   jiken    45      NaN

# 当how为right时,保留右表而不保留左表中的不同部分 
>>> df = pd.merge(df1, df2, how='right', on=['name'])
 # 结果保留了lucy却删除了jiken
>>> df
     name  math  Chinese
0     bob  23.0       21
1  millor  32.0       19
2    lucy   NaN       86

通过对how的用法解释,两表之间的连接已经非常清楚了。如果想有更深入的了解,可以下载pandas的官方文档。或者在我的公众号:python小工具。回复python获取。虽然是英文的,但并不难理解,建议下载。
哈哈,以上就是对两表连接的介绍。明天我将开始介绍多表之间的cancat和merge。如果有兴趣,欢迎关注:python小工具。让我们一起努力,让办公变得更方便。
在这里插入图片描述

发布了13 篇原创文章 · 获赞 1 · 访问量 212

猜你喜欢

转载自blog.csdn.net/weixin_45144170/article/details/104388527