pandas 的stack() 和unstack() 函數


pandas進行數據重排時,經常用到stack和unstack兩個函數。stack的意思是堆疊,堆積,unstack即“不要堆疊”

常見的數據的層次化結構有兩種,一種是表格,一種是“花括號”,即下面這樣的l兩種形式:

 

 

 

stack函數會將數據從”表格結構“變成”花括號結構“,即將其行索引變成列索引,反之,unstack函數將數據從”花括號結構“變成”表格結構“,即要將其中一層的列索引變成行索引

原數據:

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
data=DataFrame(np.arange(6).reshape((2,3)),
               index=pd.Index(['street1','street2']),columns=pd.Index(['one','two','three']))

 

 

 

原數據堆疊:

data1=data.stack()

'''
輸出:
street1  one      0
         two      1
         three    2
street2  one      3
         two      4
         three    5
dtype: int32

'''

原數據不堆疊:

data2=data.unstack()

'''
輸出:
one    street1    0
       street2    3
two    street1    1
       street2    4
three  street1    2
       street2    5
dtype: int32

'''

原數據堆疊后在解開,這個一個用於groupby之后,得到不堆疊的二維表格

data3=data.stack().unstack()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM