Я хотел бы сравнить два несортированных кадра данных и сообщить о различиях по координатам и значениям идентификатора столбца и строки.
Код сначала сравнивает CSV, а если они не равны, он сравнивает на основе слияния,и если они все еще не равны, я знаю, что данные в некотором роде отличаются.
На данный момент я не уверен, как определить координаты столбца и строки вместе со значением для каждого кадра данных, где данныеопределены как отличающиеся.
Вот кадры данных:
DATAFRAME 1 - EXP:
![enter image description here](https://i.stack.imgur.com/SrFQt.png)
DATAFRAME 2 - ACT:
![enter image description here](https://i.stack.imgur.com/FBDAk.png)
Вот мой текущий код:
import pandas as pd
file1 = "c:\\exp.csv"
file2 = "c:\\act.csv"
exp = pd.read_csv(file1, encoding="ANSI")
act = pd.read_csv(file2, encoding="ANSI")
exp = exp.drop_duplicates(subset=None, keep='first', inplace=False)
act = act.drop_duplicates(subset=None, keep='first', inplace=False)
result = exp.equals(act)
if result:
print("CSV's Match")
else:
act = act.set_index('accounts')
dataMerged = exp.merge(act, how='left')
dataMergedAndSorted = dataMerged.sort_values(['accounts']).set_index('account numbers')
actSorted = act.sort_values(['accounts'])
if dataMergedAndSorted.equals(actSorted):
print("The Merged, Sorted, and Compared Data Now Returns True : PASS")
else:
dataMergedAndSorted = dataMergedAndSorted.reset_index()
actSorted = actSorted.reset_index()
Известные различия по наблюдениям фреймов данных и как сообщить об этом:
Exp: Col = 1, Row = 4, Val = 9101, Act: Col = 1, Row = 3, Val = FOO
Exp:Col = 3, Row = 6, Val = BAR, Act: Col = 3, Row = 5, Val = malfoy