Skip to main content
 首页 » 编程设计

python之如何在分组依据后检查列是否包含特定元素

2025年05月04日11fff_TT

我想检查按列 user 分组的列 app 是否包含特定元素,例如 b。

import pandas as pd  
df=pd.DataFrame({'user':[1,1,1,2,2,3,3],'app':['a','b','c','a','c','b','c']}) 

输入:

   app  user 
0   a     1 
1   b     1 
2   c     1 
3   a     2 
4   c     2 
5   b     3 
6   c     3 

预期:

   app  user  contains_b 
0   a     1           1 
1   b     1           1 
2   c     1           1 
3   a     2           0 
4   c     2           0 
5   b     3           1 
6   c     3           1 

请您参考如下方法:

transform 与 any

df.assign(contains_b=df.app.eq('b').groupby(df.user).transform('any').astype(int)) 
 
  app  user  contains_b 
0   a     1           1 
1   b     1           1 
2   c     1           1 
3   a     2           0 
4   c     2           0 
5   b     3           1 
6   c     3           1