Я хочу добавить pandas DataFrame к существующему листу Excel mysheet1
.
Я разработал минимальный воспроизводимый пример ниже, который создает два df (df1 и df2).
Пример сохраняет первый df (df1) с функцией pandas .to_excel для имитации существующего файла Excel.
Проблема с примером ниже состоит в том, что он не добавляется в конец существующего листа mysheet1
, а скорее создает второй лист с именем mysheet11
.
. Как мне сделать так, чтобы содержимое df2 вместо этого добавлялось к исходному листу mysheet1
Edit1
Файл Excel, в котором я хочу прочитать, содержит несколько листов, которые не должны быть перезаписаны, но сохранены mysheet1
, однако с 1 пустой строкой между исходными данными листа и вновь добавленным df2.
Edit3
Фильтрация для [None]
с помощью и, если в конечном for-l oop была решена пустая строка Спасибо всем.
# ... Continuation of previous code
# Solution provided by emiljoj
from openpyxl import Workbook #reading/loading workbooks
from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows #appending dataframes to rows
wb=load_workbook(file, read_only=False)
ws_mysheet1 = wb["mysheet1"]
for r in dataframe_to_rows(df2, header=False):
if not r == [None]:
ws_mysheet1.append(r)
else:
print("Skipped empty row")
wb.save(file)
wb.close()