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

时间:2020-04-16 03:14:14

标签: python pandas dataframe

我有一个像这样的数据框“ 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

每行表示用户操作的记录。 “记录”列表示该操作是否非法。现在,我想添加一列以显示用户是否进行了非法操作。结果应该是:

   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。如何获得此信息?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

我尝试了一种方法。

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

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

相关问题