- stack():从列到行堆叠,把列转换为行
- unstack():从行到列展开,把行转换为列
1 stack
data=pd.DataFrame(np.arange(12).reshape((3,4)),
index=pd.Index(['date1','date2','date3']),
columns=pd.Index(['store1','store2','store3','store4'])
)
data

data.stack().to_frame()


2 unstack
第一列index作为unstack后的index
为了和stack以示区别,我们交换前面stack后的两个index
data.stack().to_frame().swaplevel(0,1)

data.stack().swaplevel(0,1).unstack()


2.1 unstack 的内容是multi-index
2.1.1 数据
data=pd.DataFrame(np.arange(12).reshape((3,4)),
index=[['date1','date1','date3'],
['idx1','idx2','idx1'],
['type1','type1','type2']],
columns=['store1','store2','store3','store4']
)
data
2.1.2 默认
默认是最后一个index 被unstack掉
data.unstack()

2.1.3 设置level
将哪个index unstack掉
data.unstack(level=1)

data.unstack(level=[0,1])

文章介绍了Pandas库中DataFrame的stack和unstack函数,用于行列转换。stack将列转换为行,形成multi-index;unstack则相反,将行转换回列。示例展示了如何使用这两个函数,并特别讨论了包含multi-index的情况以及设置unstack的level参数。

1623

被折叠的 条评论
为什么被折叠?



