我有一个看起来像这样的数据帧:
completed User
0 false sftcb
1 true jsftcb
2 true aynood
3 true poantar
4 false aynood
5 true brrow
6 true brrow
7 true paose
8 true pimes
9 false brrow
我想得到的是每个用户的"true"百分比。我尝试使用:
df1 = df.groupby('user')
但这并没有完成手术。感谢提供的任何帮助
添加到Josmoor98的答案中,您应该首先执行mapping
,因为值被解释为字符串。如果您希望将值显示为带有固定小数位数的%,则使用pandas option.display.float_format
:
pd.options.display.float_format = '{:.2f}%'.format
df['completed'] = df['completed'].map({'true':True,'false':False})
print(df.groupby('User')['completed'].mean()*100)
输出:
User
aynood 50.00%
brrow 67.67%
jsftcb 100.00%
paose 100.00%
pimes 100.00%
poantar 100.00%
sftcb 0.00%
Name: complete, dtype: float64
您可能在此处收到了KeyError
。您可以尝试以下操作。
df.groupby('User').mean() * 100