/ / Verifique las diferencias entre las columnas de dos marcos de datos de pandas lado a lado - python, python-3.x, pandas

Verifique las diferencias entre las columnas de dos marcos de datos de pandas lado a lado: python, python-3.x, pandas

pensé esta La solución resolvería mi problema, pero la operación aquí necesitaba verificar si las filas de sus dos marcos de datos contenían una diferencia. Quiero hacer lo mismo pero para las columnas. La solucion fue ne = (df1 != df2).any(1) Pero eso no ayuda con mis columnas. Sí, acabo de comprobar y mis dos marcos de datos tienen exactamente el mismo shape. Si lo hago df1 == df2 Me da un nuevo marco de datos lleno de verdades yfalsas En cuanto a las primeras cien filas, parece que la mayoría de las columnas con algunas excepciones son iguales. ¿Cómo se puede obtener un verdadero / falso para cada columna?

Aquí hay un ejemplo de juguete:

import numpy as np
import pandas as pd
df1 = pd.DataFrame(np.random.randint(low=0, high=10, size=(5, 5)),  columns=["a", "b", "c", "d", "e"])
df2 = df1.copy()
df2.at[3,"d"] += 10

df1

df2

Salida deseada:

A True
B True
C True
D False
E True

Respuestas

3 para la respuesta № 1

Utilizar DataFrame.all para comprobar si todos los valores por filas son Trues:

print ((df1 == df2).all())
a     True
b     True
c     True
d    False
e     True
dtype: bool

Detalle:

print (df1 == df2)

a     b     c      d     e
0  True  True  True   True  True
1  True  True  True   True  True
2  True  True  True   True  True
3  True  True  True  False  True
4  True  True  True   True  True

Solución con any También es posible, solo se necesita la salida invertida por ~:

print (~((df1 != df2).any()))

a     True
b     True
c     True
d    False
e     True
dtype: bool