2017-02-21 9 views
0

Я создаю приложение python, где я пытаюсь сравнить два Dataframes для определения различий. Ниже приведен фрагмент кода, в котором я столкнулся с проблемой. Я столкнулся вопрос в следующей строке, когда он пытается сравнить между NaN и строки/INTPython Pandas - Сравнение между двумя разностями данных.

разные =

Ошибка (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

См большие ответы [здесь] (http://stackoverflow.com/questions/17095101/outputting-difference-in-two-pandas-dataframes-side-by-side-highlighting-the-d). – Parfait

ответ

0

Возможно преобразование кадров данных в массивы numpy с использованием a0=df0.values и a1=df1.values; то у вас будет две матрицы a0, a1; чтобы найти ячейки, которые имеют разные значения, вы можете использовать np.where(a0 != a1). Очевидно, вы можете очистить данные, используя np.isnan() или np.isnf() перед выполнением сравнения.

Кажется, что ни один массив не имеет целых чисел. Если это так, обратитесь к here, чтобы убедиться, что два массива одного типа перед выполнением сравнения.

`

Смежные вопросы