我有一个如下所示的数据框架
id,status,amount,qty
1,pass,123,4500
1,pass,156,3210
1,fail,687,2137
1,fail,456,1236
2,pass,216,324
2,pass,678,241
2,nan,637,213
2,pass,213,543
df = pd.read_clipboard(sep=',')
我想做以下事情
a) Groupby公司
id
并计算每个id的通过百分比
b) Groupby公司
id号
然后计算平均值
amount
对于每个id
因此,我尝试了以下方法
df['amt_avg'] = df.groupby('id')['amount'].mean()
df['pass_pct'] = df.groupby('status').apply(lambda x: x['status']/ x['status'].count())
df['fail_pct'] = df.groupby('status').apply(lambda x: x['status']/ x['status'].count())
但这行不通。
我很难获得通过率。
在我的真实数据中,我有很多列,如
status
为此,我必须找到特定值的百分比分布(例如:通过)
我希望我的输出如下
id,pass_pct,fail_pct,amt_avg
1,50,50,2770.75
2,75,0,330.25