pandas stack和unstack

在使用pandas进行数据整理时,经常会用到stack和unstack两个函数。stack直译过来是堆叠,堆积,unstack是展开。但是stack和unstack的作用类似于pivot和unpivot,stack用于把列转换为行,而unstack用于把行转换为列。因此,可以把stack和unstack的功能解释为行列互换。

  • stack():从列到行堆叠,把列转换为行
  • unstack():从行到列展开,把行转换为列
 

1,创建数据集

import numpy as np
import pandas as pd

data=pd.DataFrame(np.arange(12).reshape((3,4))+100,
 index=pd.Index(['date1','date2','date3']),
 columns=pd.Index(['store1','store2','store3','store4'])
 )

2,堆叠数据,把列转换为行

data2=data.stack()

使用stack函数,将data的列['store1','store2','store3’,'store4’]转变成列索引(第二层),便得到了一个层次化的Series(data2),如下所示:

 输出到本地以后,可以变成这样:

 3、展开数据,把行转换为列

使用unstack函数,将data2的第二层列索引转变成行索引(默认的,可以改变),便又得到了DataFrame(data3)

data3=data2.unstack()

 

 

参考文档:

深度盘点:7个关于 Pandas stack() 和 unstack() 使用技巧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章