计算一列是否在另一列中具有特定值

Tac*_*o22 0 python dataframe python-3.x pandas pandas-groupby

我有一列 (user_id) 有数千个 user_id(也重复),另一列(字符串)有几个不同的字符串。我想检查一个唯一的 user_id 是否有一个特定的字符串,并将用户 id 和 1 存储在一个新的数据帧中。如果 user_id 没有字符串,那么我想存储 user_id 和 0。在这种情况下,我想给字符串“good”一个 1,给任何其他字符串一个 0。

如果不无限循环,我似乎找不到这样做的好方法。

初始 Pandas 数据框

用户身份 细绳
1 好的
1 更好的
1 好的
2 好的
2 更差
3 更差
3 甚至更糟

所需的 Pandas 数据框

用户身份 是字符串
1 1
2 1
3 0

提前致谢!

Erf*_*fan 6

为了保持矢量化,我们可以跳过apply

df['string'].eq('good').groupby(df['user_id']).any().astype(int).reset_index(name='is string')
Run Code Online (Sandbox Code Playgroud)
   user_id  is string
0        1          1
1        2          1
2        3          0
Run Code Online (Sandbox Code Playgroud)