Сводка проблемы
Учитывая 2 файла Excel, каждый с примерно 200 столбцами, и имеют общий столбец индекса - то есть каждая строка в обоих файлах будет иметь свойство name, скажем, что было бы лучшим для созданиявыходной файл Excel, который имеет только отличия от файла Excel 2 до файла Excel 1. Различия будут определяться как любые новые строки в файле 2 не в файле file1 и строки в файле file2, имеющие одинаковый индекс (имя), но один или несколькоиз других столбцов разные.Вот хороший пример использования панд, который может быть полезен: Сравните 2 файла Excel и выведите файл Excel с различиями Хотя сложно применить это решение к файлу Excel с 200 столбцами.
Образцы файлов
Ниже приведен пример из 2 упрощенных (столбцы уменьшены с 200 до 4) файлов Excel в формате csv, столбец индекса - Имя.
Name,value,location,Name Copy
Bob,400,Sydney,Bob
Tim,500,Perth,Tim
Name,value,location,Name Copy
Bob,400,Sydney,Bob
Tim,500,Adelaide,Tim
Melanie,600,Brisbane,Melanie
Таким образом, с учетом указанных выше 2 входных файловвыходной файл должен быть:
Name,value,location,Name Copy
Tim,500,Adelaide,Tim
Melanie,600,Brisbane,Melanie
Таким образом, выходной файл будет иметь 2 строки (не включая строку заголовка столбца), строки 2 - это новая строка, отсутствующая в файле file1, а строка 1 содержит изменения от file1 доfile2.
Следующее работает, но столбец индекса теряется (вместо ['Tim', 'Melanie'] это [1, 2]:
import pandas as pd
df1 = pd.read_excel('simple1.xlsx', index_col=0)
df2 = pd.read_excel('simple2.xlsx', index_col=0)
df3 = pd.merge(df1, df2, how='right', sort='False', indicator='Indicator')
df4 = df3.loc[df3['Indicator'] == 'right_only']
df5 = df4.drop('Indicator', axis=1)
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
df5.to_excel(writer, sheet_name='Sheet1')
writer.save()