Как на python прочитать последние n строк в excel файле и как дописать строки в таблицу excel
Есть БД, которая храниться в нескольких екселевских файлах .xlsx. БД переодически пополняется. Хотелось бы оптимизировать процесс обновления. Примерная структура БД:
ID date name
500002 16.04.2024 2:00:00 aaaa
500003 16.04.2024 3:00:00 bbbb
Строк довольно много 500к-1000к. БД отсортирована по времени. После обновления таблица выглядит вот так:
ID date name
500002 16.04.2024 2:00:00 aaaa
500003 16.04.2024 2:30:00 dddd
500004 16.04.2024 3:00:00 bbbb
500005 16.04.2024 3:00:01 cccc
Сейчас для обновления БД прога читает все 100500 строк таблицы и также для записи новых строк.
import pandas as pd
import openpyxl
with pd.ExcelFile('bd1.xlsx') as file_bd:
bd_df = pd.read_excel(file_bd, engine="openpyxl", sheet_name='baza', usecols='A:DO', skiprows=49, parse_dates=['date'])
with pd.ExcelWriter('bd1.xlsx', engine='openpyxl', mode='a', if_sheet_exists='overlay') as writer:
new_bd_df.to_excel(writer, sheet_name='baza', header=False, index=False, startrow=50)
Для корректного обновления БД достаточно прочитать последние 50к строк и добавить к ним новые данные, но я не знаю как это сделать. Также openpyxl довольно медленный, может есть более эффективный способ чтения/записил?