2017-08-29 89 views
0

在Pandas中,我曾經能夠獲取數據框列,將其與第二個數據框列進行比較,並從第二列中獲取缺失的所有項目:檢索列中不存在於另一列中的所有值

notYetIncluded = notYetIncluded.loc[~notYetIncluded["ID"].isin(df_o["ID"])] 

然而,不再更新的大熊貓(我的錯誤ValueError: Buffer dtype mismatch, expected 'Python object' but got 'long long')的作品。我怎麼做?

,似乎引起破損的部分是這樣的:notYetIncluded["ID"].isin(df_o["ID"])

我不知道是否有幫助,但這些列存儲目前只是數字像41505808等,它們都是4個位數或不太長。

例如:

notYetIncluded: 0 5747 1 5746 2 5725 3 5722 4 5720 5 5707 Name: ID, dtype: object

df_o: 24 5365 4 5720 15 5599 Name: ID, dtype: int64

+0

什麼是這些列的數據類型? – MattR

+0

這一個特別是一個數字 – Elliptica

+0

他們都'數字'?嘗試'print(dataframe.dtypes)'讓我們知道這些列的數據類型是什麼 – MattR

回答

0

使用df.astype(str)投列以字符串,然後進行比較。

n = notYetIncluded 
notYetIncluded = n[~n["ID"].astype(str).isin(df_o["ID"].astype(str))] 
+0

這似乎是導致破壞的部分'notYetIncluded [「ID」]。isin(df_o [「ID」])' – Elliptica

+0

@Elliptica如何向我們展示一些數據,或許。 –

+0

@COLDSPEED,我已將一些數據添加到我的問題陳述中。這裏的解決方案很適合作爲一種臨時措施,儘管我仍然想知道發生了什麼變化,以至於我的數據曾經能夠進行比較,不再是不可能的,因爲我的代碼和我正在使用的數據已經改變。 – Elliptica

相關問題