2016-11-16 34 views
1

我遇到了df.duplicated()錯誤地返回true的問題。當我重置索引(df.reset_index())時,df.duplicates()返回正確的結果。Python Pandas df.duplicated()誤報

此問題是raised in 2013然而,原因未被識別,只是一個解決辦法。從SQL數據庫讀入數據後,我現在遇到了問題。如果有人有解決方案,我將不勝感激,因爲我不想每次需要運行.duplicated()方法時重新設置df的索引。

我得到以下時我顯示 '重複' 使用DF [df.duplicated()]:

name  type code 
John Doe A  6532 
Jane Doe A  1124 
Rudolph Doe B  3412 

這些都不重複。在執行df.reset_index()之後,我得到完全不同(並且正確)的結果。

我很困惑,已經在互聯網上尋找解決方案。我感謝任何人可以提供的幫助。

我正在使用最新的熊貓(0.19.1)版本。不過,我在0.18版本中試過,並且遇到了同樣的問題。

+0

你怎麼知道這些都不是重複的?您是否知道.duplicated的默認值是'first',它不會將第一個值設置爲True ...所以如果您只有2個副本,則只返回最後一個元素? – schlump

+1

如果您希望任何人能夠幫助您,您確實需要顯示df和df.duplicated()。這就是說,請注意,該指數不會影響重複計算。但是在reset_index之後,索引變成了常規列,並且在計算中考慮了因素。因此,絕對可以預期,reset_index會有所作爲(如果索引是唯一的,那麼在執行reset_index之後沒有任何內容會被重複,因爲索引本身是唯一的)。 – JohnE

回答

0

我的RAM中的一根棒今天就死了。一旦被替換,這個問題就不再是一個問題。我假設這是造成我的問題的原因,因爲我在更換RAM後沒有問題。

感謝您的意見和幫助。對此,我真的非常感激。