簡體   English   中英

熊貓不會通過.drop_duplicates()引發缺少列的KeyError錯誤

[英]Pandas does not raise KeyError for missing column with .drop_duplicates()

Pandas剛剛發生了一些事情,這使我對它的信任降低了,有人知道為什么它會這樣嗎? 無論如何,對於這個小例子很容易看到,但對於較大的數據框,則需要小心一點。我幾乎在某些方面犯了錯誤。

df = pd.DataFrame({"A":[34,12,78,84,26], "B":[54,87,35,81,87], "C":[56,78,0,14,13], "D":[0,87,72,87,14], "E":[78,12,31,0,34]}) 
>> df

在此處輸入圖片說明

然后,如果您查找不存在的列:

df['b']
KeyError: 'b'

但是-

df.drop_duplicates(['b', 'D'])

...運行無錯誤,並在D列中找到錯誤。

在此處輸入圖片說明

實際上, df.drop_duplicates(['D'])產生完全相同的結果。

它錯過了一個重復的行,但是也錯過了B列中的一個,因為它拼寫錯誤。 它不會警告您或引發錯誤。

使用Pandas 0.22.0和Python 3.6.4。

df.drop_duplicates(['B','D'])僅返回原始數據幀,而不丟棄任何內容。 我是否想念東西或熊貓壞了?

Pandas版本0.20.3 python 3.6。

當我運行以下代碼行時:

df.drop_duplicates(['b', 'D'])

KeyError:“ b”

在您的示例中,第4行的情況很奇怪。

第一

df.loc[4,'B'] = 87

刪除重復后:

df.loc[4,'B'] = 82

在這兩個步驟之間,您似乎需要進行一些額外的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM