我的数据框看起来像:
Name State Gender OtherVariables
Sam CO M
Sam CO F
Sam CO M
Jim CO M
Jim WY M
以下代码为我提供了所有重复的名称:( Sam和Jim):
def list_duplicates(seq):
seen = set()
seen_add = seen.add
seen_twice = set(x for x in seq if x in seen or seen_add(x))
return list(seen_twice)
dups = list_duplicates(df.name)
但我想要的是:
Name State Gender
Sam CO M
我只想要那些具有相同名称,状态和性别的行。所以吉姆不应该在那里。 " OtherVariables"每一行都不同。
答案 0 :(得分:3)
您可以将boolean indexing
与duplicated
创建的掩码一起使用:
df = df[df.duplicated(['Name','State','Gender'])]
print (df)
Name State Gender
2 Sam CO M
答案 1 :(得分:1)
将pandas.DataFrame.duplicated
与subset
参数一起使用。
示例:
duplicates = df.duplicated(subset=['Name', 'State', 'Gender'])
df[duplicates]