一、长宽表的变形
1.pivot
pivot 是一种典型的长表变宽表的函数
长变宽三要素:
变形后的行索引:index
需要转到列索引的列:columns
以及这些列和行索引对应的数值:values
2.pivot_table
pivot 的使用依赖于唯一性条件,那如果不满足唯一性条件,那么必须通过聚合操作使得相同行列组合对应的多个值变为一个值:pivot_table 来实现,其中的 aggfunc 参数就是使用的聚合函数。
此外, pivot_table 具有边际汇总的功能,可以通过设置 margins=True 来实现
3.melt
宽表转为长表。
4.wide_to_long
列索引中被压缩的一组值对应的列元素包含了交叉列别,如只把其中某个类别的信息压缩则需要使用 wide_to_long 函数。
二、索引的变形
1.stack与unstack
(1)unstack 函数的作用是把行索引转为列索引,主要参数是移动的层号,默认转化最内层,移动到列索引的最内层,同时支持同时转化多个层。
注:在 unstack 中必须保证 被转为列索引的行索引层 和 被保留的行索引层 构成的组合是唯一的。
(2)与 unstack 相反, stack 的作用就是把列索引的层压入行索引,其用法完全类似。
2.聚合与变形的关系
(1)联系:分组聚合操作,由于生成了新的行列索引,因此必然也属于某种特殊的变形操作;
(2)区别:由于聚合之后把原来的多个值变为了一个值,因此 values 的个数产生了变化,这也是分组聚合与变形函数的最大区别
三、其他变形函数
1.crosstab
在默认状态下, crosstab 可以统计元素组合出现的频数,即 count 操作。
但并不推荐使用,因为它能实现的所有功能 pivot_table 都能完成,并且速度更快:
crosstab 的对应位置传入的是具体的序列,而 pivot_table 传入的是被调用表对应的名字。
2.explode
explode 能够对某一列的元素进行纵向的展开,被展开的单元格必须存储 list, tuple, Series, np.ndarray 中的一种类型。
3.get_dummies
get_dummies 是用于特征构建的重要函数之一,其作用是把类别特征转为指示变量。
先写到这里啦 练习还木有来得及做 结课前会抽空做完滴~
参考文献:《joyfulpandas》——Datawhale