2017-02-21 9 views
0

Ich erstelle eine Python-Anwendung, in der ich versuche, zwei Dataframes zu vergleichen, um Unterschiede zu identifizieren. Unten ist der Code, wo ich ein Problem habe. Ich bin vor ein Problem in der folgenden Zeile, wenn es zwischen NaN und String/intPython Pandas - Vergleich zwischen zwei Datenrahmen Unterschiede

unterschiedlich =

Fehler zu vergleichen versucht (a0 = a1!):

Typeerror: Kann nicht ändern Datentyp für Objektarray

Code:

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

Siehe große Antworten [hier] (http://stackoverflow.com/questions/17095101/outputting-difference-in-two-pandas-dataframes-side-by-side-highlighting-the-d). – Parfait

Antwort

0

Die Datenrahmen können unter Verwendung von a0=df0.values und a1=df1.values in numplige Arrays konvertiert werden; dann haben Sie zwei Matrizen a0, a1; Um Zellen zu finden, die unterschiedliche Werte haben, können Sie np.where(a0 != a1) verwenden. Offensichtlich möchten Sie möglicherweise die Daten mit np.isnan() oder np.isnf() reinigen, bevor Sie den Vergleich durchführen.

Es scheint nicht, dass ein Array nur ganze Zahlen hat. Wenn das der Fall ist, verweise auf here, um sicherzustellen, dass die beiden Arrays vom gleichen Typ sind, bevor Sie den Vergleich durchführen.

`

Verwandte Themen