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非常感谢你~选择太酷了。喜欢这个网站,总是学习新东西。