2017-02-21 111 views
0

我正在创建一个python应用程序,我试图比较两个数据帧来识别差异。下面给出了我面临问题的那段代码。我面临的一个问题,在下面的线,当它试图楠字符串/ INTPython熊猫 - 比较两个数据帧的差异

不同=之间比较

错误(A0 = A1!):

类型错误:不能改变数据类型为对象阵列

代码:

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

见伟大的答案[这里](http://stackoverflow.com/questions/17095101/outputting-difference-in-two-pandas-dataframes-side-by-side-highlighting-the-d )。 – Parfait

回答

0

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

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

`