Python处理Excel的常用操作(二)
继续Python处理Excel的常用操作(一)接着分享:
8、多表联合
在excel中,有两个sheet,我们需要将这两个表进行合并处理,简单来说是直接将其中一个复制粘贴到另一个表中,但一般会用到一些函数语句,才能达到最终目的,在Python中,可以这样处理。
首先,先看一下需求,现在有两个数据集,如下图所示,需要将Score表单添加到student表单中,同时需要按照ID列一一对应。
因此,需要先读取两个数据集,利用merge()函数进行相关操作,具体可见pandas文档,本次案例简单来说,便是按照student表的ID列左边连接score表,连接后发现有空值,以0填充,最后将文本类型改为整形。
students = pd.read_excel(r'C:\Users\Administrator\Desktop\python\project\excel\16\Student_Score.xlsx', sheet_name='Students')
scores = pd.read_excel(r'C:\Users\Administrator\Desktop\python\project\excel\16\Student_Score.xlsx', sheet_name='Scores')
table = students.merge(scores, how='left', on='ID').fillna(0)
table.Score = table.Score.astype(int)
print(students,scores,table)
# 最终输出结果如下:
ID Name Score
0 1 Student_001 81
1 3 Student_003 83
2 5 Student_005 85
3 7 Student_007 87
4 9 Student_009 89
5 11 Student_011 91
6 13 Student_013 93
7 15 Student_015 95
8 17 Student_017 97
9 19 Student_019 99
10 21 Student_021 0
11 23 Student_023 0
12 25 Student_025 0
13 27 Student_027 0
14 29 Student_029 0
15 31 Student_031 0
16 33 Student_033 0
17 35 Student_035 0
18 37 Student_037 0
19 39 Student_039 0
第二种方法:本文上一种是按照系统自带的index进行操作,现在我将ID列作为DateFrame的index,因此需要变化一下merge()函数的参数。
students = pd.read_excel(r&