Python Pandas - 比较两个数据帧之间的差异

时间:2017-02-21 23:11:36

标签: python arrays pandas numpy dataframe

我正在创建一个python应用程序,我试图比较两个Dataframe来识别差异。下面给出的是我面临问题的代码段。当我试图比较NaN和String / int

时,我在下面的行中面临一个问题

不同=(a0!= a1)

错误:

TypeError:无法更改对象数组的数据类型

代码:

df0 = Excel1.parse(sheet)
df1 = Excel2.parse(sheet)
a0, a1 = (df0.fillna('0')).align(df1.fillna('0'))
different = (a0 != a1)
comp = a0[different].join(a1[different], lsuffix='_old', rsuffix='_new')

1 个答案:

答案 0 :(得分:0)

可以使用a0=df0.valuesa1=df1.values将数据框转换为numpy数组;那么你将有两个矩阵a0, a1;要查找具有不同值的单元格,可以使用np.where(a0 != a1)。显然,在进行比较之前,您可能希望使用np.isnan()np.isnf()来清理数据。

似乎没有任何一个数组只有整数。如果是这样,请参考here以确保在进行比较之前两个阵列的类型相同。

`