【发布时间】:2015-12-08 10:49:33
【问题描述】:
我有一个关于在数据框中查找重复项以及使用特定列删除数据框中的重复项的问题。 这是我想要完成的事情:
是否可以删除重复但保留前 2 个?
这是我当前名为 df 的数据框的示例,请查看我在下面放置的括号注释,以便为您提供一个想法。
注意:如果 'Roll' = 1,那么我想查看日期列,看看该列中是否有第二个重复的日期...保留这两个并删除任何其他的。
Date Open High Low Close Roll Dupes
1 19780106 236.00 237.50 234.50 235.50 0 NaN
2 19780113 235.50 239.00 235.00 238.25 0 NaN
3 19780120 238.00 239.00 234.50 237.00 0 NaN
4 19780127 237.00 238.50 235.50 236.00 1 NaN (KEEP)
5 19780203 236.00 236.00 232.25 233.50 0 NaN (KEEP)
6 19780127 237.00 238.50 235.50 236.00 0 NaN (KEEP)
7 19780203 236.00 236.00 232.25 233.50 0 NaN (DELETE)
8 19780127 237.00 238.50 235.50 236.00 0 NaN (DELETE)
9 19780203 236.00 236.00 232.25 233.50 0 NaN (DELETE)
这是目前正在删除的骗局,但它正在删除所有的骗局(显然)
df = df.drop_duplicates('Date')
编辑:我忘了提一些事情,我想保留的唯一重复项是列 'Roll' = 1 如果是,则保留该行和基于列“日期”匹配的下一行
【问题讨论】:
标签: python pandas duplicates dataframe