Поиск различий и объединение различий у пандPython

Программы на Python
Anonymous
Поиск различий и объединение различий у панд

Сообщение Anonymous »

У меня есть два CSV-файла с одинаковыми именами столбцов, например:
Файл1: (df1)

Код: Выделить всё

column1    column2    column3    column4
ABC        100        020        030
DEF        200        040        050
GHI        300        001        002
Файл2: (df2)

Код: Выделить всё

column1    column2    column3    column4
ABC        100        060        070
DEF        200        040        090
Я пишу сценарий сравнения для создания файла следующим образом:

Код: Выделить всё

column1    column2    column3         column4
ABC        100        020 | 060       030 | 070
DEF        200        .               050 | 090
GHI        300        001             002
Сравнение комбинации столбца1 и столбца2, чтобы выделить различия в других столбцах, и если «Столбец1» и «Столбец2» не совпадают, то возвращается то же значение строки (в случае «GHI»).
Мой код выглядит следующим образом:

Код: Выделить всё

df = pd.concat([df1,df2], sort=False)
df.set_index(['column1', 'column2'], inplace=True)
df = df.replace(np.nan, '', regex=True)

def report_diff(x):
print(x)
return '.' if x[0] == x[1] else '{} | {}'.format(*x)

changes = df.groupby(level=['column1', 'column2']).agg(report_diff)
display(changes)
Это выдает ошибку: «Индекс 1 выходит за пределы оси 0 с размером 1». Ошибка возникает для «GHI», поскольку x[1] не найден в файле df2. Как это можно решить?
Ждем.

Подробнее здесь: https://stackoverflow.com/questions/788 ... -in-pandas

Вернуться в «Python»