【问题标题】:How to find duplicate names using pandas?如何使用熊猫查找重复名称?
【发布时间】:2013-02-21 06:15:11
【问题描述】:

我有一个pandas.DataFrame,其中包含一个名为name 的列,其中包含字符串。 我想获得在列中多次出现的名称列表。我该怎么做?

我试过了:

funcs_groups = funcs.groupby(funcs.name)
funcs_groups[(funcs_groups.count().name>1)]

但它不会过滤掉单例名称。

【问题讨论】:

    标签: python group-by pandas


    【解决方案1】:

    如果您想查找名称重复的行(我们第一次看到的除外),您可以试试这个

    In [16]: import pandas as pd
    In [17]: p1 = {'name': 'willy', 'age': 10}
    In [18]: p2 = {'name': 'willy', 'age': 11}
    In [19]: p3 = {'name': 'zoe', 'age': 10}
    In [20]: df = pd.DataFrame([p1, p2, p3])
    
    In [21]: df
    Out[21]: 
       age   name
    0   10  willy
    1   11  willy
    2   10    zoe
    
    In [22]: df.duplicated('name')
    Out[22]: 
    0    False
    1     True
    2    False
    

    【讨论】:

    • 我比我更喜欢这个。
    【解决方案2】:

    我遇到了类似的问题并遇到了这个答案。

    我想这也有效:

    counts = df.groupby('name').size()
    df2 = pd.DataFrame(counts, columns = ['size'])
    df2 = df2[df2.size>1]
    

    df2.index 会给你一个重复的名字列表

    【讨论】:

    • 最好使用 df2['size'] 而不是 df2.size,因为 df2.size 是一个内置函数。
    【解决方案3】:

    一个班轮可以是:

    x.set_index('name').index.get_duplicates()
    

    索引包含查找重复的方法,列似乎没有类似的方法..

    【讨论】:

    • 这正是我所需要的。谢谢@idoda!
    • 这个“set_index()”是否会破坏名为 x 的原始数据帧的索引?我应该在数据帧的副本上运行此命令吗?
    • 请注意,index.get_duplicates()deprecated,因为 v0.23
    【解决方案4】:

    另一个班轮可以是:

    (df.name).drop_duplicates()
    

    【讨论】:

      【解决方案5】:

      value_counts 也会给你重复的数量。

      names = df.name.value_counts()
      names[names > 1]
      

      【讨论】:

        【解决方案6】:

        给出的大多数回复都演示了如何删除重复项,而不是找到它们。

        以下将选择数据框中的 每个 行,其中包含重复的 'name' 字段。请注意,这将找到 each 实例,而不仅仅是在第一次出现后重复。 keep 参数接受可以排除第一次或最后一次出现的附加值。

        df[df.duplicated(['name'], keep=False)]
        

        duplicated() 的 pandas 参考可以在 here 找到。

        【讨论】:

          猜你喜欢
          • 2020-05-03
          • 2019-08-03
          • 2018-11-22
          • 2017-01-16
          • 2021-11-26
          • 2017-01-23
          • 1970-01-01
          • 2020-10-13
          • 2021-12-12
          相关资源
          最近更新 更多