我有一个DataFrame df
,其中包含行和列,其中有重复的ID:
Index Id Type
0 a1 A
1 a2 A
2 b1 B
3 b3 B
4 a1 A
...
当我使用时:
uniqueId = df["Id"].unique()
我获得了唯一ID列表。
但是,我如何在整个DataFrame上应用此过滤,以便保留结构,但删除重复项(基于" Id")?
答案 0 :(得分:7)
您似乎需要DataFrame.drop_duplicates
参数subset
来指定测试重复的位置:
#keep first duplicate value
df = df.drop_duplicates(subset=['Id'])
print (df)
Id Type
Index
0 a1 A
1 a2 A
2 b1 B
3 b3 B
#keep last duplicate value
df = df.drop_duplicates(subset=['Id'], keep='last')
print (df)
Id Type
Index
1 a2 A
2 b1 B
3 b3 B
4 a1 A
#remove all duplicate values
df = df.drop_duplicates(subset=['Id'], keep=False)
print (df)
Id Type
Index
1 a2 A
2 b1 B
3 b3 B