如何使用pandas查找重复名称?
我有一个叫做 pandas.DataFrame
的数据表,其中有一列叫做 name
,里面存放的是一些字符串(名字)。我想要找出在这一列中出现超过一次的名字,应该怎么做呢?
我试过这样做:
funcs_groups = funcs.groupby(funcs.name)
funcs_groups[(funcs_groups.count().name>1)]
但是这样做并没有把只出现一次的名字过滤掉。
6 个回答
8
value_counts 这个功能可以告诉你有多少个重复的值。
names = df.name.value_counts()
names[names > 1]
11
一句话可以这样写:
x.set_index('name').index.get_duplicates()
索引里有一个查找重复项的方法,但列似乎没有类似的方法。
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