我有以下代码:
df_user_data = df.groupby(['user_name']) \
.apply(lambda x: pd.Series( \
{'user_mean_amount': sum(x['user_amount'])/len(x), \
'user_game_count':len(x), \
'user_win_count':len(x['result'] == 'Won') \
})).reset_index()
字段user_game_count
计算给定用户的总记录,user_win_count
计算result == 'Won'
的记录数。但是,这两个字段输出相同的值。我在这里做错了什么?
谢谢!
答案 0 :(得分:1)
我认为需要改变:
'user_win_count':len(x['result'] == 'Won')
为:
'user_win_count':(x['result'] == 'Won').sum()
仅计算True
个值。如果使用len
,则返回df
的长度,因此获得相同的输出。
另外
sum(x['user_amount'])/len(x)
应简化为:
x['user_amount'].mean()