[英]Create index from multiindex pandas dataframe
我有一個數據框
0 1
A B A B
1 4 6 5 6
2 4 8 15 3
3 8 10 10 2
我想創建一個索引,以便所有列都除以 A 列的總數,以獲得它們的透視級別 0,即 0 或 1
所以
0=16
1=30
所以輸出是
0 1
A B A B
1 4/16 6/16 5/30 6/30
2 4/16 8/16 15/30 3/30
3 8 /16 10/16 10/30 2/30
到目前為止我有
df_in.divide(df_in.iloc[:, df_in.columns.get_level_values(1)=='A'].sum(axis=0),level=0,axis=1)
但它不起作用
使用DataFrame.xs
選擇帶有sum
級別A
並傳遞給DataFrame.div
:
df = df.div(df.xs('A', axis=1, level=1).sum(), axis=1, level=0)
print (df)
0 1
A B A B
1 0.25 0.375 0.166667 0.200000
2 0.25 0.500 0.500000 0.100000
3 0.50 0.625 0.333333 0.066667
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.