两个Excel中都有相同的一列,怎样依赖这列数据将两个Excel合并到一起?使用Python合并表格只要一句代码!
1 读取表格
使用Python读取数据只要3行,第一行载入pandas工具,第二行读取,第三行显示头部5行内容。
import pandas as pd
data1 = pd.read_excel('表格1.xlsx')
data1.head()
运行这个代码就会直接显示出表格1的前5行数据。
同样我们可以用下面代码读取表格2.
import pandas as pd
data2 = pd.read_excel('表格2.xlsx')
data2.head()
提示:在输入代码的时候可以只打单词的前两个字母,然后按Tab键盘就会弹出提示,用箭头或鼠标上下滚动选择命令即可。尤其是’表格1.xlsx’完全不用手工输入,只要输入英文双引号,然后就可以按Tab键滚动到底部直接选择文件名。
2 合并表格
如上所示,表格1和表格2都是某个活动的问卷数据,其中表格1包含了每个学员的联系电话、收件地址等信息,表格2包含了每个学员的考试成绩、出勤记录等信息。
由于是不同的问卷,两个表格的学员顺序不同,而且第一个问卷姓名栏叫name
,第二个问卷姓名栏叫姓名
,现在我们需要把它们合并到一起,并且确保每行学员的信息都能正确匹配对齐。
如果使用Excel软件可能需要很多操作,但使用Python就只需要一句代码。
dataMerge=pd.merge(data1,data2,left_on='name',right_on='学员姓名',how='left')
最后的how=’left’是以表格1为准,表格2中存在但表格1中不存在的学员会被忽略。可以把left改为right就会以表格2为准,也可以改为outer同时保留两个表格所有的学员姓名,或者改为inner只保留那些同时存在于两个表格中的学员。如果不输入这个how的话会默认为是inner。
中间的left_on就是data1(表格1,参见上面代码)的学员姓名栏名称,right_on就是data2(表格2,参见上面代码)的学员姓名栏名称,这样就会自动匹配对齐。如果两个表格学员姓名栏名称一样,可以改为使用下面的代码更加简单。
dataMerge=pd.merge(data1,data2,on='name')
3 保存表格
最后我们用下面的命令把合并好的数据保存成Excel文件。
dataMerge.to_excel('合并表格.xlsx')
上面这句代码运行后就会自动生成一个新的Excel文件,你可以用Excel打开查看再做进一步的手工检查和修改。
原文来自:https://www.jianshu.com/p/0b2b9c08f7f2
(版权归原作者所有,侵删)
本文链接:http://www.yunweipai.com/39888.html