簡體   English   中英

如何用分類值計算組內的百分比?

[英]How to count percentage within group with categorical values?

我有一個數據框:

id   value_type
1       b
1       a
1       a
2       a
3       a
3       b

我想用每個 id 組計算每個 value_type 的百分比。所以想要的結果是:

id   value_type       perc
1       b             0.33
1       a             0.66
2       a             1
3       a             0.5
3       b             0.5

我怎么能那樣做? 我試過 groupby().size() 但它很重要,但我需要百分比

檢查以下代碼:

import pandas as pd

df = pd.DataFrame({'col1':[1,1,1,2,3,3],'col2':['b','a','a','a','a','b']})

df['perc'] = df.groupby(['col1','col2'])['col2'].transform('count')/df.groupby('col1')['col2'].transform('count')

df.round(2).drop_duplicates()

輸出:

在此處輸入圖像描述

你也可以這樣做:

res = df.groupby('id').value_counts(normalize=True).reset_index(name='perc')

print(res)
'''
   id value_type      perc
0   1          a  0.666667
1   1          b  0.333333
2   2          a  1.000000
3   3          a  0.500000
4   3          b  0.500000

暫無
暫無

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

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