龙空技术网

【第四弹】手把手教你用Python 4步还原一个Excel透视表

nathanielwen 105

前言:

眼前朋友们对“python如何恢复编写内容”大致比较珍视,小伙伴们都想要分析一些“python如何恢复编写内容”的相关知识。那么小编在网络上汇集了一些有关“python如何恢复编写内容””的相关资讯,希望姐妹们能喜欢,各位老铁们一起来学习一下吧!

最近一直在用pandas,昨天突然想到一个好玩的事情:能不能把一个Excel透视表还原回去呢?

答案当然是可以的,让我们马上开始吧。

读取数据

假设我们拿到是这样的一个透视表:

第一步当然是先加载到内存中。

df1 = pd.read_excel('~/Desktop/data.xlsx', sheet_name='Sheet1', skiprows=[0, 5], usecols=[0,1,2])

我们限定了读取的范围,跳过了第一行求和项和最后一行总计,也跳过了最后一列总计,现在df1长这样:

行列转化

第二步我们以Month为索引进行行列转化:

df2 = df1.set_index(['Month']).stack()

现在df2长这样:

可以看到如果Shanghai所在的行可以也有类似Jan、Feb这样的月份信息,并且第二列和第三列可以标识为City和Sales,那么就是最终的效果了,让我们继续~

重置索引

接下来,我们需要重置索引:

df3 = df2.reset_index()

完成之后的df3长这样:

只差把第二列和第三列改个名字就是最终的版本了!

重命名

df4 = df3.rename(columns={0: 'Sales', 'level_1': 'City'})

最终的版本df4长这样:

写进Excel里看看:

df4.to_excel('~/Desktop/output.xlsx', index=False)
写在最后

严格的说,这个“还原”只是还原了部分信息,毕竟透视表的值可能是sum或者平均得到的,因此不可能100%还原到最初的状态。不过作为一个小工具还是挺有趣的。

标签: #python如何恢复编写内容