我正在创建一个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')
答案 0 :(得分:0)
可以使用a0=df0.values
和a1=df1.values
将数据框转换为numpy数组;那么你将有两个矩阵a0, a1
;要查找具有不同值的单元格,可以使用np.where(a0 != a1)
。显然,在进行比较之前,您可能希望使用np.isnan()
或np.isnf()
来清理数据。
似乎没有任何一个数组只有整数。如果是这样,请参考here以确保在进行比较之前两个阵列的类型相同。
`