Как использовать метод xlsxwriter .add_table () с фреймом данных? - PullRequest
0 голосов
/ 28 августа 2018

мои данные - датафрейм 'как я могу это сделать?

import xlsxwriter

workbook = xlsxwriter.Workbook("test1.xlsx")
worksheet = workbook.add_worksheet("sheli22")
worksheet.add_table('B3:F7', {'data': data,'style': 'Table Style Light 17','header_row': False})

workbook.close()

1 Ответ

0 голосов
/ 28 августа 2018

Согласно разделу документации xlsxwriter, описывающему метод .add_table(), ожидается, что «структура данных должна быть списком списков» ( ссылка на документы ).

Чтобы создать этот список списков из вашего фрейма данных, необходимо будет использовать .T для транспонирования фрейма данных, а затем .tolist() для преобразования транспонированного фрейма данных в список списков.

У меня есть полностью воспроизводимый пример с использованием приведенного ниже примера данных.

import pandas as pd
import xlsxwriter

data = pd.DataFrame({'a':[1,2,3,4,5],
                   'b':[2,3,4,5,6],
                   'c':[3,4,5,6,7],
                   'd':[4,5,6,7,8],
                   'e':[5,6,7,8,9]})

workbook = xlsxwriter.Workbook("test1.xlsx")
worksheet = workbook.add_worksheet("sheli22")
worksheet.add_table('B3:F7', {'data': data.values.T.tolist(),'style': 'Table Style Light 17','header_row': False})

workbook.close()

с ожидаемым результатом:

Expected test1.xlsx

...