Pandas基础学习 Task04:变形(知识梳理脑图+全部资源教程)
文章目录
Pandas基础学习
本次跟随Datawhale组队学习Pandas基础,希望能有所收获。Datawhale是一个很好的开源组织,会组织很多免费的知识学习。
附上本次组队学习的计划和教程资料,即使没有当时加入组队学习,有兴趣的话从现在开始学习也不晚哦~
现在学习喜欢用脑图的方式,知识点清晰明了,易于查找和复习,希望也可以帮助大家梳理知识脉络。
一、Task04:变形
二、问题与练习
1、问题
【问题一】 上面提到了许多变形函数,如melt/crosstab/pivot/pivot_table/stack/unstack函数,请总结它们各自的使用特点。
pivot:速度较快,但功能少,同时不允许重复行索引对。但一般使用功能多的pivot_table。
pivot_table:功能更多,速度较慢。较为灵活,可以从不同的组合查看某值的情况,还可以看各组的统计情况和整体的统计情况。
crosstab:交叉表,一种特殊的透视表,典型的用途如分组统计。感觉主要是查看各组合的频数情况,可以看各组的统计情况和整体的统计情况。。
melt:将透视表还原,将unstacked状态的数据,压缩成stacked,使“宽”的DataFrame变“窄”。可以指定要压缩的列。
stack:功能与melt类似,不同点是通过将横向的索引放到纵向来达到压缩的目的,且不能指定要压缩的列。
unstack:功能与pivot_table类似,不能指定某个组合。
【问题二】 变形函数和多级索引是什么关系?哪些变形函数会使得索引维数变化?具体如何变化?
可以说多级索引是由变形函数产生的。
pivot/pivot_table:前者通过解压多列增加维数,后者相似,只不过可以通过对组内进行聚合统计增加维数。
crosstab:通过多级分组增加维数。
stack:通过压缩将横向的索引放到纵向,减少维数。
unstack:通过解压加维数。
【问题三】 请举出一个除了上文提过的关于哑变量方法的例子。
【问题四】 使用完stack后立即使用unstack一定能保证变化结果与原始表完全一致吗?
不一定,如例子一样,unstack后还需要交换索引层,并排序层索引才能与原表一样.
【问题五】 透视表中涉及了三个函数,请分别使用它们完成相同的目标(任务自定)并比较哪个速度最快。
【问题六】 既然melt起到了stack的功能,为什么再设计stack函数?
我的感觉是stack可以压缩多级索引,而且较为简便,而melt只能压缩单级。