一、重塑层次化索引
- stack:将数据的列“旋转”为行(从列索引的角度),从数据的角度(一行数据转为一列)
- unstack:将数据的行“旋转”为列
Note:
- 默认情况下,unstack/stack操作的是最内层,传入分层级别的编号或者名称即可对其他级别进行unstack/stack操作
- 如果不是所有的级别值都能在各分组中找到的话,unstack操作会引入缺失数据
- stack默认会滤除缺失数据
- 对DataFrame进行unstack操作时,作为旋转轴的级别将会成为结果中的最低级别
二、将“长格式”旋转为“宽格式”
关系型数据库中的数据经常都是以“长格式”或“堆叠格式”存储的。
- 长格式转宽格式(数据透视表)
DataFrame.pivot(co1, col2, col3):前两个参数分别用作“行索引”和“列索引”的列名,最后一个参数用作数据填充的列名
其实pivot仅为一个快捷方式,用set_index创建层次化索引,再用unstack重塑会达到同样的效果。