我有一个用户表,其中包含他们的项目和其他信息
我需要选择唯一一个只有一种项目类型的用户,否则从数据框中删除。 示例表:
|customer |items |levels |
| -------| ------- | ------- |
| a | x | 0 |
| a | x | 1 |
| a | y | 0 |
| a | y | 0 |
| b | t | 0 |
| b | t | 1 |
| b | t | 1 |
| b | t | 3 |
所以删除客户“a”
我可以这样检查:
df.groupby('customer').agg({'items':'nunique'})
并连接了两个表,但我不确定效率如何。
我们是否有更有效的方法来删除这些值(我们也有多个记录,所以我不确定如何使用drop_duplicate
)
最佳答案
您可以进行转换
con=df.groupby('customer')['item'].transform('nunique')==1
df1=df[con].copy()
修复你的输出
s=df.groupby('customer').agg({'items':'nunique'})
df1=df.loc[df.customer.isin(s[s==1].index)].copy()
关于Python:检查每个用户的唯一类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58945453/