簡體   English   中英

如何獲得在 pandas 中具有 MultiIndex 的 df 中每個組的百分比貢獻?

[英]How to get percentage contribution for each group in df having MultiIndex in pandas?

我有一個 df 如下:

year 和 Continent 是索引。 hydro_total 是一列。

df信息

我想添加一個列,該列將占給定年份大陸貢獻的百分比。

例如: 1971 年,非洲有 2.04 的貢獻,美洲有 48.56 的貢獻,亞洲、歐洲和大洋洲的情況類似。 這將重復每年。

這是數據:

{'hydro_total': {(1971, 'Africa'): 1861980.0,
  (1971, 'America'): 44127920.0,
  (1971, 'Asia'): 14514450.0,
  (1971, 'Europe'): 28232850.0,
  (1971, 'Oceania'): 2126000.0,
  (1972, 'Africa'): 2300750.0,
  (1972, 'America'): 47242190.0,
  (1972, 'Asia'): 14970150.0,
  (1972, 'Europe'): 29427610.0,
  (1972, 'Oceania'): 2225000.0}}

如果我理解正確:

df['contribution'] = df.groupby(level=0)['hydro_total'] \
                       .transform(lambda g: g / g.sum()) * 100

結果:

              hydro_total  contribution
1971 Africa     1861980.0      2.049212
     America   44127920.0     48.565228
     Asia      14514450.0     15.973959
     Europe    28232850.0     31.071820
     Oceania    2126000.0      2.339781
1972 Africa     2300750.0      2.392485
     America   47242190.0     49.125821
     Asia      14970150.0     15.567037
     Europe    29427610.0     30.600942
     Oceania    2225000.0      2.313715

暫無
暫無

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

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