Compare con otro DataFrame y muestre las diferencias.
Nuevo en la versión 1.1.0.
- Parámetros
-
- otro : Marco de datos
-
Objeto para comparar.
- eje_alinear : 0 o ‘índice’, 1 o ‘columnas’, predeterminado 1
-
Determine en qué eje alinear la comparación.
-
- 0, o ‘índice’ : Las diferencias resultantes se apilan verticalmente
-
con filas dibujadas alternativamente de uno mismo y otro.
-
- 1, o ‘columnas’ : Las diferencias resultantes se alinean horizontalmente
-
con columnas dibujadas alternativamente de uno mismo y otro.
- Keep_shape : bool, por defecto Falso
-
Si true, se mantienen todas las filas y columnas. De lo contrario, solo se conservan los que tienen valores diferentes.
- keep_equal : bool, por defecto Falso
-
Si true, el resultado mantiene valores iguales. De lo contrario, los valores iguales se muestran como NaN.
- Devoluciones
-
- Marco de datos
-
DataFrame que muestra las diferencias apiladas una al lado de la otra.
El índice resultante será un MultiIndex con ‘self’ y ‘other’ apilados alternativamente en el nivel interno.
- Eleva
-
- ValueError
-
Cuando los dos DataFrames no tienen etiquetas o formas idénticas.
Ver también
Series.compare
-
Compare con otra Serie y muestre las diferencias.
DataFrame.equals
-
Pruebe si dos objetos contienen los mismos elementos.
Notas
Los NaN coincidentes no aparecerán como una diferencia.
Solo se pueden comparar DataFrames con etiquetas idénticas (es decir, con la misma forma, etiquetas de fila y columna idénticas)
Ejemplos de
>>> df = pd.DataFrame(......"col1":["a","a","b","b","a"],..."col2":[1.0,2.0,3.0, np.nan,5.0],..."col3":[1.0,2.0,3.0,4.0,5.0]...,... columns=["col1","col2","col3"],...)>>> df
col1 col2 col3
0 a 1.01.01 a 2.02.02 b 3.03.03 b NaN 4.04 a 5.05.0
>>> df2 = df.copy()>>> df2.loc[0,'col1']='c'>>> df2.loc[2,'col3']=4.0>>> df2
col1 col2 col3
0 c 1.01.01 a 2.02.02 b 3.04.03 b NaN 4.04 a 5.05.0
Alinear las diferencias en las columnas
>>> df.compare(df2)
col1 col3
self other self other
0 a c NaN NaN
2 NaN NaN 3.04.0
Apila las diferencias en filas
>>> df.compare(df2, align_axis=0)
col1 col3
0 self a NaN
other c NaN
2 self NaN 3.0
other NaN 4.0
Mantenga los valores iguales
>>> df.compare(df2, keep_equal=True)
col1 col3
self other self other
0 a c 1.01.02 b b 3.04.0
Mantenga todas las filas y columnas originales
>>> df.compare(df2, keep_shape=True)
col1 col2 col3
self other self other self other
0 a c NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN 3.04.03 NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN
Mantenga todas las filas y columnas originales y también todos los valores originales
>>> df.compare(df2, keep_shape=True, keep_equal=True)
col1 col2 col3
self other self other self other
0 a c 1.01.01.01.01 a a 2.02.02.02.02 b b 3.03.03.04.03 b b NaN NaN 4.04.04 a a 5.05.05.05.0