[英]Calculate percentage of all alliances in year in dataframe pandas
我有 dataframe 看起來像(真實框架有從 1990 年到 2020 年的年份):
年 | Chains_Normalize | 聯盟名稱 |
---|---|---|
1990 | 0.000 | 嘉特公司 |
1990 | 0.000 | 凱爾公司 |
1990 | 0.000 | 新公司 |
1991 | 13.222 | 悲傷公司 |
1991 | 18.152 | 第二軍團 |
1991 | 16.333 | 新公司 |
1992 | 19.212 | 沒有公司 |
1992 | 0.000 | 第三公司 |
1992 | 14.332 | 第四公司 |
如果 Chains_Normalize 不為 0,我必須計算每年的聯盟百分比。(這個想法是計算 dataframe 中每年包含的所有聯盟的百分比)
結果將如下所示:
Year Percentage
1990 0.000
1991 33.333
1992 22.222
1990 的聯盟都是零,它的百分比是 0。
1991 年有 3 個非零聯盟並且 (3/9)*100 = 33.333
1992 有 2 個非零聯盟並且 (2/9)*100 = 22.222
只需計算每年的非零值,然后除以df
的長度,然后乘以 100(您已經使用(N/9)*100
手動執行此操作):
>>> df['Chains_Normalize'].ne(0).groupby(df['Year']).sum() / len(df) * 100
Year
1990 0.000000
1991 33.333333
1992 22.222222
Name: Chains_Normalize, dtype: float64
這是有效的,因為df['Chains_Normalize'].ne(0)
返回一系列布爾值,其中聯盟不為零,然后您可以對它們求和:
>>> df['Chains_Normalize'].ne(0)
0 False
1 False
2 False
3 True
4 True
5 True
6 True
7 False
8 True
Name: Chains_Normalize, dtype: bool
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.