【问题标题】:Remove entries with multiple associations in a pandas dataframe?删除熊猫数据框中具有多个关联的条目?
【发布时间】:2017-11-16 03:43:32
【问题描述】:

给定一个表单的数据框:

id name

1  a
1  b
2  c
2  a
2  d
3  a
3  d
4  a

在这里,假设“a”与超过 3 个(任意)ID 相关联。所以结果应该是这样的:(删除所有超过 3 个关联的names

id name

1  b
2  c
2  d
3  d

我应该怎么做?

【问题讨论】:

    标签: python python-3.x pandas dataframe data-manipulation


    【解决方案1】:
    • name 分组并计数唯一id
    • 使用 compress 过滤以仅限制小于或等于 3 的那些
    • 仅查找压缩名称中的名称

    u = df.groupby(['name']).id.nunique()
    df[df.name.isin(u.compress(lambda x: x <= 3).index)]
    
       id name
    1   1    b
    2   2    c
    4   2    d
    6   3    d
    

    【讨论】:

      猜你喜欢
      • 2020-01-11
      • 2019-02-26
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 2017-09-27
      相关资源
      最近更新 更多