运用merge()和reduce()合并多个数据

一、创建数据表
代码如下:

import pandas as pd

data1 = pd.DataFrame({'名字': ['小明', '小华', '小花'], '语文成绩': [95, 96, 97]})
data2 = pd.DataFrame({'名字': ['小王', '小明', '小华'], '数学成绩': [98, 89, 88]})
data3 = pd.DataFrame({'名字': ['小王', '小花', '小强'], '英语成绩': [87, 89, 85]})

数据表结果如下:
在这里插入图片描述二、merge()函数的应用

df = pd.merge(data1, data2, on='名字', how='outer')
print(df)

结果如下:在这里插入图片描述注释:代码中的参数’on’是指按照哪一列进行合并;参数’how’是设置合并方式,inner表示取交集,outer表示取并集,默认表示取交集。

三、同时合并多个数据表
merge()函数只能合并两个数据表,如果是合并多个数据表呢?那么就要加上reduce()函数,下面来说一下如何同时合并多个数据表。
代码如下:

from functools import reduce
import pandas as pd

data1 = pd.DataFrame({'名字': ['小明', '小华', '小花'], '语文成绩': [95, 96, 97]})
data2 = pd.DataFrame({'名字': ['小王', '小明', '小华'], '数学成绩': [98, 89, 88]})
data3 = pd.DataFrame({'名字': ['小王', '小花', '小强'], '英语成绩': [87, 89, 85]})
df = reduce(lambda x, y: pd.merge(x, y, on='名字', how='outer'), [data1, data2, data3])
print(df)

结果如下:
在这里插入图片描述


版权声明:本文为weixin_48468999原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。