我有一个df
,想要根据ID
删除所有的重复项。
Name Symbol ID
0 ZOO INC Remove 88579Y101
1 Zoo Inc ZZZ 88579Y101
2 A Inc AAA 90138A103
3 a inc. Remove 90138A103
4 2U Inc TWUO 90214J101
5 Keep Remove 111111111
但我只想删除其中Symbol == 'Remove'
的重复行。输出应如下:
Name Symbol ID
0 Zoo Inc ZZZ 88579Y101
1 A Inc AAA 90138A103
2 2U Inc TWUO 90214J101
3 Keep Remove 111111111
由于数据集没有特定的模式,所以不能使用result_df = df.drop_duplicates(subset=['ID'], keep='first')
(或keep='last'
)。而且先按字母顺序排序也没有帮助。
虽然我知道我可以将所有的Remove
替换为NaN
,然后使用这里提供的解决方案,但我正在寻找另一种解决方案,因为我最终可能需要传递一个字符串列表。
Pandas是否支持像这样的操作:result_df = df.drop_duplicates(subset=['ID'], keep=(df['Symbol'] != 'Remove'))
?
Symbol == 'Remove'
的行吗?我只想删除那些在ID
上重复的行。我会更新问题以使其更清晰。 - user53526356