[英]Multiindex in pandas pivot table
我正在處理如下所示的數據透視表:
Style Site AVS End Qty. \
JP SIZE 116 120 140 ADULTS L M O OSFA S XL
0 50935801 2664 0 0 0 0 0 0 0 0 0 0 3
1 50935801 2807 0 0 0 0 0 0 0 0 0 0 3
2 50935801 2832 0 0 0 0 0 0 0 0 0 0 3
3 50935802 2702 1 0 0 0 0 0 1 0 0 0 0
4 50985101 2849 0 0 0 0 0 0 3 0 0 0 0
Sales Qty.
JP SIZE Total 116 120 140 ADULTS L M
0 3 0 0 0 0 0 0 ...
1 3 0 0 0 0 0 0 ...
2 3 0 0 0 0 0 0 ...
3 1 0 0 0 0 0 -1 ...
4 3 0 0 0 0 0 0 ...
而且我只希望有一個列標題向量,該向量為[Style,Site,AVS,116,120,...,Total,Sales Qty。]。
但是對於“銷售數量”。 列,而不是現在的表,我只希望總列(我現在可以使用jj ['Sales Qty'] ['Total']來訪問它,所以我想我可以將其保存在另一個列中變量,將其刪除並最后添加)
到目前為止,我嘗試過的所有方法都失敗了,我認為這是因為我對MultiIndex的工作方式還不太了解。
在此先感謝您提供的任何幫助!
可能內置了一些更聰明的方法,但是一種方法是將MultiIndex作為元組列表使用,並按照您的描述映射新的列名。
def custom_rename(lvl1, lvl2):
if lvl1 == 'End Qty.':
return lvl2
elif lvl1 == 'Sales Qty.' and lvl2 == 'Total':
return 'Sales Qty.'
elif lvl2 == '':
return lvl1
else:
return '_'
然后應用於列並分配:
df.columns = [custom_rename(lvl1, lvl2) for lvl1, lvl2 in df.columns]
上面的'_'
用於不再需要的列的標記,因此最后一步是刪除這些列。
df = df.drop('_', axis=1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.