Python:检查每个用户的唯一类别

标签 python pandas

我有一个用户表,其中包含他们的项目和其他信息

我需要选择唯一一个只有一种项目类型的用户,否则从数据框中删除。 示例表:

|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/

相关文章:

python (操作系统): how to simulate pressing Enter while executing an external application

python - 为什么追加到列表会破坏我的 for 循环? (Python)

python - 在 pandas groupby 操作中计算唯一元素并总结值

python - 将unicode插入sqlite?

python - 加入两个长度不同的列表,重复最短的

python - 优化Apply创建带有 bool 列的字符串列表

python - 计算一系列字符串中连续数字的组数

python - 在 for 循环中添加 Pandas 列值?

python - 用之前的非缺失值填充缺失的 pandas 数据,按键分组

python - Airflow:如何将 PyMySQL 与 MySQL Hook 结合使用?