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

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

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

初始 Pandas 数据框

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

回答

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

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


以上是计算一列是否在另一列中具有特定值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>