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() 使用技巧!

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