簡體   English   中英

如何:Pandas 由於 pivot 表而存在多索引時的列划分

[英]How to: Pandas division of columns when multiindex present due to pivot table

我有一個銷售數據集,我將其讀入 Pandas dataframe 並轉向組信息。 現在列是一個多索引,看起來像這樣:

MultiIndex([('Orders', 'Pants'),
        ('Orders', 'Shirts'),
        ('Orders', 'Shoes'),
        ( 'Spend', 'Pants'),
        ( 'Spend', 'Shirts'),
        ( 'Spend', 'Shoes'),,
       names=[None, 'Product'])

現在,我正在嘗試計算每個“產品”的“平均訂單價值”。 我想做類似的事情:

# Calculate Avg. Order Value by dividing Spend Series by Orders Series
dataframe['AOV'] = dataframe['Spend'] / dataframe['Orders'] 

但是我不能。 我如何以具有這些列多索引的 dataframe 結束:

MultiIndex([('Orders', 'Pants'),
            ('Orders', 'Shirts'),
            ('Orders', 'Shoes'),
            ( 'Spend', 'Pants'),
            ( 'Spend', 'Shirts'),
            ( 'Spend', 'Shoes'),
            ( 'AOV', 'Pants'),
            ( 'AOV', 'Shirts'),
            ( 'AOV', 'Shoes'),
           names=[None, 'Product'])

Spend除以Orders ,然后與keys參數連接到concat稱為AOV的附加索引級別,然后與原始concat連接以獲得結果

AOV = pd.concat([df.loc['Spend'] / df.loc['Orders']], keys=['AOV'])
result = pd.concat([df, AOV])

或者,您可以拆開unstack然后分開並堆疊回去

s = df.unstack()
s.loc['AOV'] = s.loc['Spend'] / s.loc['Orders']
result = s.stack()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM