如何使用pandas查找重复的名称?

Yar*_*riv 21 python group-by pandas

我有一个pandas.DataFrame名为name包含字符串的列.我想获得列中不止一次出现的名称列表.我怎么做?

我试过了:

funcs_groups = funcs.groupby(funcs.name)
funcs_groups[(funcs_groups.count().name>1)]
Run Code Online (Sandbox Code Playgroud)

但它并没有过滤出单身人士的名字.

wai*_*kuo 39

如果要查找具有重复名称的行(除非我们第一次看到),您可以尝试这样做

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
Run Code Online (Sandbox Code Playgroud)

  • 我比这更喜欢这个. (3认同)

ido*_*oda 11

一个班轮可以是:

x.set_index('name').index.get_duplicates()
Run Code Online (Sandbox Code Playgroud)

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


Doc*_*r J 8

value_counts也会给你重复的数量.

names = df.name.value_counts()
names[names > 1]
Run Code Online (Sandbox Code Playgroud)