如何添加列来计算是否至少有一条记录



我有一个数据帧"df",如下所示:

user_id  record
0        a      No
1        a      No
2        a     Yes
3        b      No
4        b      No
5        c     Yes
6        c     Yes

每一行表示一个用户操作的记录。列"record"表示操作是否非法。现在我想添加一列来显示用户是否有非法操作。结果应该是:

user_id  record history
0        a      No       1
1        a      No       1
2        a     Yes       1
3        b      No       0
4        b      No       0
5        c     Yes       1
6        c     Yes       1

一旦用户至少有1个非法操作,则所有"历史记录"都应为1。我怎么能拿到这个?

这可能比您的解决方案快一点:

df['history'] = df['record'].eq('Yes').groupby(df['user_id']).transform('any')

我尝试过一种方法。

df['history'] = df.groupby('user_id').transform(lambda x: int('Yes' in x.values))

这可以解决问题。但我认为这不是一个聪明的主意。

最新更新