Python 删除重复数据不会';你似乎没有真正删除DUP?

Python 删除重复数据不会';你似乎没有真正删除DUP?,python,pandas,Python,Pandas,我正在尝试预处理一些数据并运行以下命令: df = df[df.duplicated(subset=['ticker','periodDate'], keep='first')] 但当我寻找DUP时,它们仍然存在: dups = df[df.duplicated(subset=['ticker','periodDate'], keep=False)] print (dups[dups['ticker'] == 'cofe.us']) ticker periodDate

我正在尝试预处理一些数据并运行以下命令:

df = df[df.duplicated(subset=['ticker','periodDate'], keep='first')]
但当我寻找DUP时,它们仍然存在:

dups = df[df.duplicated(subset=['ticker','periodDate'], keep=False)]
print (dups[dups['ticker'] == 'cofe.us'])

         ticker  periodDate  ... exchangeRateChanges cashAndCashEquivalentsChanges
348     cofe.us        2017  ...                 0.0                           0.0
300109  cofe.us        2018  ...                 0.0                           0.0
300110  cofe.us        2018  ...                 0.0                           0.0
300111  cofe.us        2017  ...                 0.0                           0.0
300112  cofe.us        2017  ...                 0.0                           0.0
300113  cofe.us        2017  ...                 0.0                           0.0
300114  cofe.us        2017  ...                 0.0                           0.0
300115  cofe.us        2016  ...                 0.0                           0.0
300116  cofe.us        2016  ...                 0.0                           0.0
300117  cofe.us        2016  ...                 NaN                           NaN
300118  cofe.us        2016  ...                 NaN                           NaN

我的目标只是保留ticker和periodDate的第一个匹配项,然后忽略其他匹配项。

duplicated
返回重复的行。通过执行
df[df.duplicated(..)]
,您只保留重复的行,而不是将它们过滤掉

使用
~
获取非重复项:

df[~df.duplicated(subset=[....], keep='first')]

duplicated
返回重复的行。通过执行
df[df.duplicated(..)]
,您只保留重复的行,而不是将它们过滤掉

使用
~
获取非重复项:

df[~df.duplicated(subset=[....], keep='first')]

简单的bug。实际上,您希望
df[~df.duplicated(subset=[…],keep='first')]
。否则,您只需过滤所有重复的值。你忘了前面的
~
duplicated@rafaelc我甚至不知道~做了什么。那很有趣。谢谢你-你能把它作为一个答案贴出来吗?我会接受的。完成。@rafaelc非常感谢你~选择太酷了。喜欢这个网站,总是学习新东西。简单的错误。实际上,您希望
df[~df.duplicated(subset=[…],keep='first')]
。否则,您只需过滤所有重复的值。你忘了前面的
~
duplicated@rafaelc我甚至不知道~做了什么。那很有趣。谢谢你-你能把它作为一个答案贴出来吗?我会接受的。完成。@rafaelc非常感谢你~选择太酷了。喜欢这个网站,总是学习新东西。