Сравнить 2 xlsx таблицы и дозаписать несовпадения в одну из них

Есть 2-е xlsx таблицы. Одна - "База", а вторая - "обновленная расширенная база". Нужно сравнить две этих таблицы по 'C' столбцу(названия) и, если у значений 'C' столбцов нет совпадений, дописать в первую таблицу("база") всю строку из обновленной базы, столбец 'C' которой не найден в первой таблице "База". Дописывать нужно в первую пустую строку таблицы 1 "База". Я попробовал что-то написать, но этот код просто копирует таблицу 2 в таблицу 1. По идее здесь нужно условие в условии. Поясню - какой-то код, который говорит "ЕСЛИ значения из C[от 1 до последнего].sheet2 != C[от 1 до последнего].sheet, то записать в sheet всю строку, ЕСЛИ строка в sheet пустая."

import string
from openpyxl import load_workbook

wb = load_workbook(filename = 'baza1.xlsx')
sheet = wb['Ассортимент']

wb2 = load_workbook(filename = 'baza2-obshaya.xlsx')
sheet2 = wb2['Ассортимент']

idx=0
def write_cells(name):
    sheet2['C' + str(56 + idx)] = name

for i in range(sheet2.max_row):
    if sheet2['C' + str(5 + idx)].value != sheet['C'+ str(5 + idx)].value:
        write_cells(name = str(sheet['C'+ str(5 + idx)]))
idx+=1
wb.save(filename='baza1.xlsx')

Ответы (1 шт):

Автор решения: Алексей

После 12-ти часов гугления, благодаря усилию Namerek(посоветовал годную библу) скомпозитил нужный мне код, который делает то, что мне нужно:

import pandas as pd
import xlwt
from openpyxl import load_workbook

df1 = pd.read_excel(r'baza2-obshaya.xlsx', sheet_name='Ассортимент', header=None)
df2 = pd.read_excel(r'baza1.xlsx', sheet_name='Ассортимент', header=None)

df = (df1[~df1[2].isin(df2[2])])

def append_df_to_excel(filename, df, sheet_name='Ассортимент', startrow=55, truncate_sheet=False, **to_excel_kwargs): #startrow надо менять. По умолчанию стоит "None"
    writer = pd.ExcelWriter('baza1.xlsx', engine='openpyxl')
    writer.book = load_workbook(filename = 'baza1.xlsx')    
    if startrow is None and sheet_name in writer.book.sheetnames:
            startrow = writer.book[sheet_name].max_row

    writer.sheets = {ws.title:ws for ws in writer.book.worksheets}
   

    if startrow is None:
        startrow = 0

    df.to_excel(writer, sheet_name, startrow=startrow, index=False, header=None, **to_excel_kwargs)

    writer.save()

append_df_to_excel('baza1.xlsx', df)
→ Ссылка