python小技能:1行代码做数据"逆透视表",效率翻倍!

2021-11-25 22:17:51 6点赞 55收藏 1评论

创作立场声明:实际看下来,很有用的书籍

一维表,是非常好用的表格,可以基于此进行各种数据的计算统计。

有时候,拿到手的是二维表,需要转换成一维表之后,再进行后面的计算。

比如,下面的一个表格,表示每个人手上项目,每月的状态表,进行中,或者完成。

如果要计算,每个部门,每个人,每月手头有几件进行中,几件完成了?那么,就需要将原表转换成一维表。

原表:

python小技能:1行代码做数据"逆透视表",效率翻倍!

逆透视之后的一维表:

python小技能:1行代码做数据"逆透视表",效率翻倍!

在python里面,要怎么实现呢?1行代码,就可以实现!

1、导入pandas模块:

import pandas as pd

2、导入需要进行透视的表格

df=pd.read_excel(“工作 W48.xls”)
df.head()

代码解释:df.head() 查看数据表的前5行

python小技能:1行代码做数据"逆透视表",效率翻倍!

3、数据透视:pivot_table()

df2 = pd.melt(df,id_vars=[‘责任部门’,’负责人’],var_name=’月份’,value_name=’状态’)
df2

参数解释:

id_vars=[‘责任部门’,’负责人’]:’责任部门’,’负责人’,不需要转换列

var_name=’月份’:需要转换成列的行名,设置列名为”月份“

value_name=’状态’:设置值的列名为”状态“

python小技能:1行代码做数据"逆透视表",效率翻倍!

4、删除[“状态”]栏有空值的行:dropna()

df2=df2.dropna(subset=[“状态”])
df2

从上表,可以看到,有些行的”状态”=NaN,是空值,用dropna()函数,把空值所在的行删除。

上表:567row*4columns

删除空值行之后:316row*4columns

即删除了251行

python小技能:1行代码做数据"逆透视表",效率翻倍!

5、保存表格:命名为“透视图’’

df.to_excel(‘透视图.xls’, index=False)

一共5行代码就可以搞定啦,而逆透视的核心代码pd.melt()只有一行,是不是很简单?

大家有更好的方法,欢迎来告诉我啊!


书籍网址:

Python编程三剑客新版:Python编程从入门到实践第2版+快速上手第2版+极客编程(套装3册)224.3元京东去购买


利用Python进行数据分析(原书第2版)119元京东去购买


更多推荐:

python小技能:Matplotlib可视化四种常用统计图形!

python小技能:四行代码合并excel工作表!

python小技能:4行代码做数据透视表,太秀了!

python小技巧:超详细 matplotlib 中画出折线图的方法!


展开 收起
1评论

  • 精彩
  • 最新
  • 小白打算上手python,学做数据分析、统计建模做评分卡、自动化办公。
    请问:实操方向,有啥适配VW公众号or网课or电子书推荐,求大神介绍。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
55
扫一下,分享更方便,购买更轻松