簡體   English   中英

計算當年所有聯盟的百分比 dataframe pandas

[英]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.

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