使用多层索引进行重塑
stack(堆叠) :旋转或将列中的数据透视到行
unstack(拆堆):将行中的数据透视到列
data.stack() data.unstack()
data.unstack(0) #0表示最外层
data.unstack('key1').stack('key2')
数据透视
长透视为宽:
data.piovot()
data.pivot(index_columns,columns_columns,values)
等价于data.set_index(['key1','key2']).unstack('key2')
宽透视为长:返回一个variable列和一个value列
清楚分组指标和数据值
pd.melt()
melted = pd.melt(data,['key1']) #key1作为分组指标
指定列的子集作为值列
pd.melt(data,id_vars=['key1'],value_vars=['A','B'])
也可以不设置任何分组指标
pd.melt(data,value_vars=['A','B','C'])
pd.melt(data,value_vars=['key1','A','B'])