Python 显示特定列中任何值多次出现的行
我想显示列“网站”中任何值多次出现的所有行。例如,如果某个网站“xyz.com”出现多次,那么我想显示所有这些行。我正在使用以下代码-Python 显示特定列中任何值多次出现的行,python,pandas,Python,Pandas,我想显示列“网站”中任何值多次出现的所有行。例如,如果某个网站“xyz.com”出现多次,那么我想显示所有这些行。我正在使用以下代码- df[df.website.isin(df.groupby('website').website.count() > 1)] 上面的代码返回零行。但我可以通过运行下面的代码看到有很多网站不止一次出现- df.website.value_counts() 我应该如何修改我的第一行代码以显示所有这样的行 与subset='website'和keep=Fal
df[df.website.isin(df.groupby('website').website.count() > 1)]
上面的代码返回零行。但我可以通过运行下面的代码看到有很多网站不止一次出现-
df.website.value_counts()
我应该如何修改我的第一行代码以显示所有这样的行 与subset='website'
和keep=False一起使用:
df[df.duplicated(subset='website', keep=False)]
样本输入:
col1 website
0 A abc.com
1 B abc.com
2 C abc.com
3 D abc.net
4 E xyz.com
5 F foo.bar
6 G xyz.com
7 H foo.baz
样本输出:
col1 website
0 A abc.com
1 B abc.com
2 C abc.com
4 E xyz.com
6 G xyz.com
这管用!谢谢还有另一个困惑。在使用上述代码行之后,我得到了200行(这意味着200行有重复的网站)。当我使用df.drop_duplicates(subset='website')时,它会删除2500行。为什么会这样?它不应该只删除200行吗?如果您想删除所有重复项,您可以使用df.drop\u duplicates(subset='website',keep=False)
。默认情况下,drop\u duplicates
保留副本的第一个实例,然后删除其余实例,除非您使用keep
另外指定。但这并不能解释您看到的行为,测试drop\u duplicates
的效果与我预期的一样。您可能需要深入挖掘,看看哪些行被删除了,而哪些行不在duplicated
输出中。调查这可能有助于解释差异。drop_duplicates
将删除除第一行以外的所有重复行。从上面的代码中可以看到200行,这意味着唯一的行是200行,而所有其他行都是这200行的副本,所以它减少了2500行。检查删除重复项后剩余的行数。我想你会再次得到200分