Как я могу сравнить два несортированных кадра данных и сообщить о различиях - PullRequest
0 голосов
/ 28 февраля 2019

Я хотел бы сравнить два несортированных кадра данных и сообщить о различиях по координатам и значениям идентификатора столбца и строки.

Код сначала сравнивает CSV, а если они не равны, он сравнивает на основе слияния,и если они все еще не равны, я знаю, что данные в некотором роде отличаются.

На данный момент я не уверен, как определить координаты столбца и строки вместе со значением для каждого кадра данных, где данныеопределены как отличающиеся.

Вот кадры данных:

DATAFRAME 1 - EXP:
enter image description here

DATAFRAME 2 - ACT:
enter image description here

Вот мой текущий код:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...