[英]Calculate percentage of specific grouped values
我有一個數據框:
id is_good
a1 1
a1 1
a1 0
bb 1
bb 0
bb 0
bb 0
с1 0
с1 0
d2 1
d2 1
如您所見,有些情況下 id 值只有 is_good 類型。 我想為每個 id 計算 0 和 1 的百分比。 如果 id 值只有 is_good 類型,那么他沒有的類型必須是 0%。 與 d2 相同。 所以想要的結果是:
id is_good_perc
a1 0.67
bb 0.25
с1 0
d2 1
怎么做? 對我來說棘手的部分是 id c1 和 d2 的情況。
我試過這個:
.groupby("id").is_good.value_count(normalize=True)
但它不會為 c1 和 d2 創建 0
您將df.is_good
按df.id
然后將總和除以計數:
>>> grouped = df['is_good'].groupby(df.id)
>>> df1 = pd.DataFrame(grouped.sum() / grouped.count()).round(2).rename(columns={'is_good': 'is_good_perc'})
>>> df1
is_good_perc
id
a1 0.67
bb 0.25
d2 1.00
с1 0.00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.