簡體   English   中英

使用條件 groupby 計算分類列的百分比並在 Pyhton 中計數

[英]Calculate percentage of categorical column using conditional groupby and count in Pyhton

我想為每個 id 計算來自 id 的所有行的 True 值的百分比。

這是我的數據示例:

id     col1    
 1     True
 1     True
 1     False
 1     True
 2     False
 2     False

新列應如下所示:

id     col1    num_true
 1     True     0.75
 1     True     0.75
 1     False    0.75
 1     True     0.75
 2     False    0
 2     False    0

這就是我試圖做的:

df['num_true']= df[df['col1'] == 'True'].groupby('id')['col1'].count()
df['num_col1_id']= df.groupby('id')['col1'].transform('count')

df['perc_true']= df.num_true/df.num_col1_id

groupby並應用transform來獲得mean

df['num_true']=df.groupby('id').col1.transform('mean')



  id   col1  num_true
0   1   True      0.75
1   1   True      0.75
2   1  False      0.75
3   1   True      0.75
4   2  False      0.00
5   2  False      0.00

這是詢問的代碼:

import pandas as pd
df = pd.DataFrame({"col1": [True,True,False,True,False,False]}, index = [1,1,1,1,2,2])
grouped_df = df.groupby(df.index)
df["num_true"] = grouped_df.sum() / grouped_df.count()

我在這里所做的是按索引對 dataframe 進行分組,然后,我將“真”值的數量相加,然后除以值的總數。

結果:

    col1    num_true
1   True    0.75
1   True    0.75
1   False   0.75
1   True    0.75
2   False   0.00
2   False   0.00

暫無
暫無

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

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