2017-08-29 109 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

相关问题