Поиск различий и объединение различий у панд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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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