26、pandas的逆透视与stack()函数

在前面的我们用过pivot_table()透视功能,这个功能很强大,在excel也有类似功能。

透视最基本的功能就是将普通列的内容转换为索引或者列名,并进行各种的汇总计算。

那么“逆透视”就是将索引,特别是将列名转换为普通的列,方便后期计算,这个在excel里面叫做二维表转换为一维表。

比我们在处理数据时,得到的是类似于下面的这个表格:

源数据

这种汇总表作为结论的确是一目了然,但是如果还要进行进一步的加工处理就很麻烦了。

有个stack()函数能将列名转换为普通列的内容,来试试:

df.stack()

似乎有点类似,但是并不正确,主要是产品名称没有正确。如果先将产品名称转换为索引再用stack(),怎么样呢?

把产品名称变为索引

这次更接近了。但是产品名称是索引,不方便,还是要转换为普通列:

重置索引

基本完成,只要设置好列名就行了。

可是如果前面在加上一列呢?

源数据

那样我们就可以考虑将“产品大类”和“产品名称”两列都设置为索引:

将“产品大类”和“产品名称”两列都设置为索引

这样就可以了,不过需要注意的是中括号不能忘了,否则就会变成这样的了:

注意中括号
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,967评论 19 139
  • 一觉醒来: (1) 京港澳高速汨罗段昨晚发生油罐车爆炸,已致5死20伤。现场二次爆炸不断 (2) 山东公布涉疫苗案...
    朱司机阅读 232评论 0 0
  • “去那金黄的麦田,听稻草人唱歌……”我喜欢这种乡野情趣,所以每逢初秋,我都会去田野中落花生,那可真让我着迷...
    你在我就在阅读 327评论 0 0
  • 我们以为世界上大多数的人可能都是悲喜参半,甚至悲伤和压力更多,但其实大部分的人幸福感都是很强的。 当人均GDP在3...
    酱婶儿的李屁屁阅读 181评论 0 0