/ / Skontrolujte rozdiely medzi stĺpcami dvoch dátových rámcov pandy vedľa seba - python, python-3.x, pandy

Vyhľadanie rozdielov medzi stĺpcami dve pandy dátových rámcov bok po boku - python, python-3.x, pandy

myslel som toto riešenie môjho problému, ale op tu treba skontrolovať, či riadky jeho dvoch dátových rámcov obsahujú rozdiel. Chcem urobiť to isté, ale pre stĺpce. Riešením bolo ne = (df1 != df2).any(1) ale to nepomôže s mojimi stĺpmi. Áno, skontroloval som a oba moje dátové rámy majú presne to isté shape, Ak áno df1 == df2 dáva mi nový dátový rámec plný trues afalses. Pri pohľade na prvých sto riadkov sa zdá, že väčšina stĺpcov s niekoľkými výnimkami je rovnaká. Ako môžete získať len jeden True / False pre každý stĺpec?

Tu je príklad hračiek:

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

Požadovaný výstup:

A True
B True
C True
D False
E True

odpovede:

3 pre odpoveď č. 1

použitie DataFrame.all na kontrolu, či sú všetky hodnoty na riadkoch Trues:

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

detail:

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

Riešenie s any je tiež možné, potrebujú len invertný výstup ~:

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

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