带你走进 @ 机器人时代
Discover 点击上面蓝色文字,关注我们
Python 有各种花式操作Excel的手段,学会了 , 你的薪水大概率要翻倍 。
我们来看看如何将一个工作表的某列按照内容拆分成为多个工作簿,在审计业务中特别使用:
import pandas as pdp = '明细账.xlsx'#读取指定表的数据data = https://www.itzhengshu.com/excel/pd.read_excel(p, sheet_name='明细账-天海实业')#按照产品名称分组d = data.groupby('对方科目名称')print(d)for i, j in d:if i==0:i='异常科目'if i is None:i='异常科目'#为新的工作簿命名n_n=str(i)[0:12]n_p = 'test\' str(i)[0:20]'.xlsx'print(n_n)#写入数据j.to_excel(n_p, sheet_name=n_n, index=False)
运行后,很壮观:
相信做审计的小伙伴们每天为了拆表头都大了,这个程序运行只需要3秒钟,是不是很爽?
如果我们并不想生成这么多的工作簿,只想分成若干表,可以采用这个代码:
with pd.ExcelWriter('各产品销售表.xlsx') as wb:for i, j in p:j.to_excel(wb, sheet_name=i, index=False)
这样就将拆分出来的表直接写在同一个文件里面,方便查找 。不过有时候我们不光只拆一个表的数据,我们只需要其中几列的数据怎么操作呢?
请看下面的代码,实现横向拆分:
import pandas as pdf_p = '销售数量统计.xlsx'#读取数据data = https://www.itzhengshu.com/excel/pd.read_excel(f_p, sheet_name='总表')#获取各列的列名h_c = list(data.columns)#获取拆分后每个工作表都必须有的数据s_c = data[['配件编号', '配件名称']]#新建工作簿with pd.ExcelWriter('各产品销售表1.xlsx') as wk:#遍历各月的数据[2:]代表跳过前面2列for i in h_c[2:]:#根据列名获取该列数据dif_col = data[i]#将固定的列与月份列横向绑定s_d = pd.concat([s_c, dif_col], axis=1)#写入数据s_d.to_excel(wk, sheet_name=i, index=False)
运行后得到拆分好的工作簿:
如果我们希望将这些结构相同的数据全部纵向汇总在一起,我们可以使用以下代码实现:
import pandas as pdfp = '上半年销售统计.xlsx'data = pd.read_excel(fp, sheet_name=None)#将所有工作表的数据纵向拼凑在一起all_data = pd.concat(data, ignore_index=True)new_1 = '销售统计.xlsx'all_data.to_excel(new_1, sheet_name='总表', index=False)
如下图,我们希望横向将各个数据表的数据进行合并:
得到:
我们该怎么实现呢?看下面的代码:
import pandas as pdfp = '产品各月销售数量表.xlsx'data = https://www.itzhengshu.com/excel/pd.read_excel(fp, sheet_name=None)all_data = data['1月'][['配件编号', '配件名称']]for i in data:col = data[i].iloc[:, [2]]all_data = https://www.itzhengshu.com/excel/pd.concat([all_data, col], axis=1)new_fp ='合并表.xlsx'all_data.to_excel(new_fp, sheet_name='总表', index=False)
由此可以看出,pandas库的数据处理功能是非常强大的 。
继续坚持学习,每天都能进步一点?。。?/b>
往期回顾:
- 来来来,送你一个金牌销售机器人,7X24小时不休,不要工资免费用!
- 不要嫌你现在的工作很累,可能你离失业不远了!
- 作为旅游行业的一个小老板 , 我受够了!这是要被淘汰的节奏吗?
本文引用和摘录相关内容,请联系侵删 。
- END -
【Excel表的花式操作,Python很拿手】最后,文章有帮助到你的话【点赞在看】
激励我们分享更多的干货!