零零客微文大全00ke.net

  • 如何用一行代码搞定数据透视表?
  • 来源:未明学院


Excel中数据透视表的使用非常广泛,其实Pandas也提供了一个类似的功能,应用起来比Excel更灵活,也更强大。虽然pivot_table看起来只是一个简单的函数,但是它能够快速地进行数据分析,帮你轻松搞定繁杂冗余的数据,提升学习工作的效率。

本期我们将重点解释Pandas中的pivot_table函数,并教大家如何使用它来进行数据分析。


注意,你需要确保你理解你的数据,并清楚地知道你想通过透视表解决什么问题。

(1)预处理
打开一份Excel表格,可以看到一份表格的数据量庞大,如何从繁杂冗余的数据中获取自己想要的信息,是一个让人头疼的问题。


图/列数据


图/行数据多达3W+


我们来教大家怎么用一行代码获取想要的信息。


在此之前,先进行简单的数据预处理,为防止后续操作中筛选出的数据量过大,我们可以限定显示最大的函数为10行:


(2)单个索引
以年代为索引,计算各个数字字段的均值(默认):


通过这种简单的筛选方式,你可以轻松获取你想要的信息,无需大费周章地查找。


同理,如果想要以产地为索引,只要把“年代”索引修改成“产地”索引即可。

(3)多索引
此外,也可以有多个索引。实际上,大多数的pivot_table参数可以通过列表获取多个值。我们尝试按年代和产地索引进行筛选:



(4)指定要统计的列数据
也可以指定需要统计汇总的数据,利用“values”指定要统计的列数据。比如我想要按照年代和产地索引,查看相应年代和产地的电影的评分:



(5)指定统计方法

还可以指定函数来统计不同的统计值,使用aggfunc就很容易实现,比如在下图中使用Numpy的sum函数对投票人数求和:




aggfunc可以包含很多函数,下面让我们尝试用numpy中的sum和mean函数来进行分组计算。


以产地为索引,通过将“投票人数”列和“评分”列进行对应分组,用sum函数计算总和,用mean计算数值均值:



可以看到,透视表的应用很灵活。


(6)替换非法字符

非数值(NaN)难以处理,会对计算产生干扰。如果想移除它们,可以使用“fill_value”将其设置为0:



(7)计算总和
加入margins=True,可以在下方显示一些总和数据:


(8)灵活运用aggfunc
一个很方便的特性是,为了对你选择的不同值执行不同的函数,你可以向aggfunc传递一个字典。不过,这样做有一个副作用,那就是必须将标签做的更加简洁才行。

我们尝试对各个地区的投票人数求和,对评分求均值:


(9)数据过滤

运用type函数,可以看到数据透视表是Dataframe类型的:


(10)进一步应用

1994年被誉为电影史上伟大的一年,《低俗小说》《肖申克的救赎》《阿甘正传》等经典电影都出现在这一年,所以我们通过索引筛选1994年的电影评分,1994年的电影平均分在7.26分:



接下来我们按电影的年代进行排名,使用排序函数sort_values(),评分按照降序排序,设置ascending的值为False:



数据显示,评分最高的是1924年,平均分达到8分以上。


那么1924年都有什么电影呢?我们接着往下看:



1924年的所有电影仅靠一小串代码就罗列出来了,是不是很轻松~


话不多说,小明已经抄下影单,准备观影了!




往期精彩回顾
如何使用python制作词云图?
 Pandas必备技能之“表格拼接”
4张思维导图系统入门Python爬虫
7张思维导图掌握数据分析关键库pandas
Numpy核心要点有哪些?3张思维导图帮你梳理



- END -


未明训练营火热报名中
商业分析,量化金融,机器学习,深度学习
4大专题,5个精选项目任你挑选

<<<商业分析实战营课表,向左滑动查看更多>>>

<<<量化金融实战营课表,向左滑动查看更多>>>

<<<机器学习实战营课表,向左滑动查看更多>>>

<<<深度学习实战营课表,向左滑动查看更多>>>


报名与咨询






















    已同步到看一看
















    发送中
















    其他

    << 6 7 8 9 10 >> 

    公众号 • 未明学院

    Flag Counter