Сортировка csv / dataframes с использованием отчетов Python и DataCompy - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь сравнить два CSV-файла (не отсортированные) и хотел бы получить отчет, подобный сравнению SAS Proc. Я использую datacompy и сортирую фрейм данных перед сравнением, но отчеты datacompy показывают, что «нет общих строк».

Пожалуйста, дайте мне знать, что мне не хватает в приведенном ниже фрагменте.

Я пробовал сортировку, переиндексацию, а также вместо использования join_columns я пробовал также on_index = True.

from io import StringIO
import pandas as pd
import datacompy

data1 = """name,age,loc
ABC,123,LON
EFG,456,MAA
"""

data2 = """name,age,loc
EFG,457,MAA
ABC,124,LON
"""

df1 = pd.read_csv(StringIO(data1))
df2 = pd.read_csv(StringIO(data2))

df1.sort_values(by=['name','age','loc']).reindex
df2.sort_values(by=['name','age','loc']).reindex

compare = datacompy.Compare(
    df1,
    df2,
    join_columns=['name','age','loc'],  #You can also specify a list of columns
    abs_tol=0.0001,
    rel_tol=0,
    df1_name='original',
    df2_name='new')
compare.matches()

print(compare.report())

Ожидаемый результат

data1

имя, возраст, LOC

ABC, 123, LPN

EFG, 456, MAA

data2

имя, возраст, LOC

ABC, 123, LPN

EFG, 457, MAA

И отчет должен быть таким же, как для столбца возраста, максимальное различие равно 1, а все остальные в порядке.

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