各行各业的“表”哥姐们在很多时候,会被领导要求把一张信息量巨大的总表,按一定的条件,拆分成多个工作表。比如我的领导要求我把下面这张“5年级在校生信息”按“班级”分发给不同班主任:
大家通常的做法是谨小慎微、不断重复地复制粘贴,直到老眼昏花、直到手抖犯错、直到不知错从何起而从头开始。
如果领导让你处理的表是全校学生、全国各校区学生、全世界各校区学生呢?加班几个通宵才能把一张张表准确无误地搞定?
这里是你的做法:
复制粘贴半小时后……
这里是我的做法,利用python中的pandas库,5行代码、1秒钟拆分工作表。
效果演示视频:
[video(video-Z7INdXls-1598882561826)(type-tencent)(url-https://v.qq.com/txp/iframe/player.html?vid=h3144xzab14)(image-http://puui.qpic.cn/vpic/0/h3144xzab14.png/0)(title-python 办公自动化:1秒钟搞定excel总表的拆分)]
import pandas as pd
df = pd.read_csv('5年级在校生信息.csv') #读取表
for i in range (1,9): #8个班
save_data =df[df['班级']=='小学2016级'+str(i)+'班']
print('小学2016级'+str(i)+'班完成哒!!')
save_data.to_csv('小学2016级'+str(i)+'班.csv',encoding='utf_8_sig',index=False)
注意
(1)for i in range (1,9)中,(1,9) 是一个前闭后开的区间,所以要获取8个班的数据,就需要修改数值为1:9。
(2)新建的EXCEL表如果出现乱码,设置属性:encoding=‘utf_8_sig’。
(3)若不希望新建的EXCEL表有行索引,那么设置index=False。