咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

带你走进 @ 机器人时代

Discover 点击上面蓝色文字,关注我们


Python
有各种花式操作Excel的手段,学会了,你的薪水大概率要翻倍。

我们来看看如何将一个工作表的某列按照内容拆分成为多个工作簿,在审计业务中特别使用:

import pandas as pd p = '明细账.xlsx' #读取指定表的数据 data = 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 pd f_p = '销售数量统计.xlsx' #读取数据 data = 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 pd fp = '上半年销售统计.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 pd fp = '产品各月销售数量表.xlsx' data = pd.read_excel(fp, sheet_name=None) all_data = data['1月'][['配件编号', '配件名称']] for i in data: col = data[i].iloc[:, [2]] all_data = pd.concat([all_data, col], axis=1) new_fp = '合并表.xlsx' all_data.to_excel(new_fp, sheet_name='总表', index=False)


由此可以看出,pandas库的数据处理功能是非常强大的。

继续坚持学习,每天都能进步一点!!!


往期回顾:

  • 来来来,送你一个金牌销售机器人,7X24小时不休,不要工资免费用!
  • 不要嫌你现在的工作很累,可能你离失业不远了!
  • 作为旅游行业的一个小老板,我受够了!这是要被淘汰的节奏吗?


本文引用和摘录相关内容,请联系侵删。

- END -


最后,文章有帮助到你的话【点赞在看
激励我们分享更多的干货!