Копирование нескольких файлов данных Python в Excel с использованием метода to_excel StyleFrame - PullRequest
0 голосов
/ 03 мая 2018

У меня есть несколько фреймов данных, df1, df2 и т. Д. Каждый фрейм данных содержит разное количество столбцов и строк. Используя библиотеку StyleFrame, возможно ли скопировать все кадры данных один за другим в один лист в файле Excel, используя метод to_excel, указав расположение ячеек? В настоящее время вот что я делаю:

Запись df1 в Sheet1 файла Excel

writer = StyleFrame.ExcelWriter("filename")
sf1 = StyleFrame(df1)

#Perform formatting using apply_column_style, apply_headers_style etc.

sf1.to_excel(writer, sheet_name='Sheet1')

Записать df2 в Sheet1 файла Excel

writer = StyleFrame.ExcelWriter("filename")
sf2 = StyleFrame(df2)

#Perform formatting using apply_column_style, apply_headers_style etc.

sf2.to_excel(writer, sheet_name='Sheet1')    #Incorrectly overwrites df1 data in the excel

writer.save()
writer.close()

Однако метод sf2.to_excel () перезаписывает данные df1 в Excel. То, что я ищу, - это скопировать данные df1, начиная с местоположения ячейки, скажем «A2», на листе 1, а затем данные sf2, начиная с местоположения, скажем «B31», на том же листе и так далее.

1 Ответ

0 голосов
/ 03 мая 2018

Да. Как pandas.to_excel поддерживает startrow и startcol аргументы, так и StyleFrame.to_excel.

API почти такой же, как у pandas: Вам нужно создать объект excel_writer, вызвать to_excel на обоих стилевых кадрах, а затем вызвать excel_writer.save:

from StyleFrame import StyleFrame, Styler

sf1 = StyleFrame({'a': [1]}, Styler(bg_color='yellow'))
sf2 = StyleFrame({'b': [1]}, Styler(bg_color='blue'))

excel_writer = StyleFrame.ExcelWriter('test.xlsx')
sf1.to_excel(excel_writer)
sf2.to_excel(excel_writer, startcol=3, startrow=2)  # both are zero-based
excel_writer.save()

Выходы

enter image description here

...