数据分析之pandas学习笔记(六)(数据表:啊~我被玩坏了、)
数据分析之Pandas学习笔记(六)(层次化索引、重塑、轴向旋转、行列变换、合并表数据)
level层次化索引
用于数组重塑
以低维度处理高维度数据
基于分组的操作
透视表的生成
pandas的层次化索引示例
unstack()与stack()进行重塑,即:行列索引变换
以DataFrame为例:df.stack()
降维
将 列索引最上侧
的那一排索引 加到 行索引的最右侧
df.unstack()
升维
将 行索引最右侧
的那一竖索引 加到 列索引的最上侧
swaplevel()交换两个索引位置
df.swaplevel(0,1)
可以为name,也可以为level索引
sort_index()排序与 sum(level= )求和排序
df.sort_index(level=0)
对相应维度的那列索引排序df.sum(level=0)
对行索引求和并自动排序
set_index()和reset_index()索引和列之间相互变换
df.set_index(['c','d'])
将c,d两列 --> 变成 --> 行索引
通过添加drop=False
字段,会创建出一个新的DataFrame,保留住原来cd这两列的数据。
df.reset_index()
reset_index的功能跟set_index刚好相反,层次化索引的级别会被转移到列里面
轴向旋转
重塑(轴向旋转的一种)stack()和unstack()
上面提到了重塑,它其实是轴向旋转的一种.stack()
和.unstack()
操作的都是最内层,在进行轴向旋转的时候,轴级别也会成为结果中的最低级别。
(可以结合上面stack()和unstack()部分的例子。。。体会一下)
轴向旋转pivot()长变宽
df.pivot(index='',columns='',values='')
pandas.DataFrame.pivot()官方文档
将某列作为行索引,某列作为列索引,某(若干)列作为值。
本质有点类似于,先set_index创建层次化索引,然后unstack重塑。
例如下面这样:
相当于合并同类项(每个value对应的行列索引是唯一的,)
什么意思?看下面这个例子:但是你用df.pivot_table() 这个方法,就可以避免上述唯一性的问题。