![](/img/trans.png)
[英]Pandas Python - How to create new columns with MultiIndex from pivot table
[英]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.