Проблемы с записью таблицы в Excel с помощью Python - PullRequest
0 голосов
/ 19 июня 2020

Привет, я пытаюсь создать таблицу в Excel, используя фреймворк из другой электронной таблицы Excel и записывая таблицу в новую. Я считаю, что мой код правильный, но таблица не записывается в новую электронную таблицу Excel. Может ли кто-нибудь взглянуть на мой код и сказать, что не так?

import xlsxwriter

import pandas as pd
import openpyxl as pxl
import xlsxwriter
import numpy as np
from openpyxl import load_workbook
path = '/Users/benlong/Downloads/unemployment.xlsx'

df = pd.read_excel(path)
rows = df.shape[0]
columns = df.shape[1]
wb = xlsxwriter.Workbook('UE2.xlsx')
ws = wb.add_worksheet('Sheet1')
ws.add_table(0,0,rows,columns, {'df': df})
wb.close()

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Вы должны преобразовать ваш фрейм данных в список. Используя df.values.tolist() и используйте ключ data.

В вашем случае вы также должны установить заголовок df и избежать ошибки значения nan. например:

import xlsxwriter as xlw

# while got NaN/Inf values from ur dataframe , u'll get a value of '#NUM!' instead in saved excel
wb = xlw.Workbook('UE2.xlsx',{'nan_inf_to_errors': True})
ws = wb.add_worksheet('Sheet1')
cell_range = xlw.utility.xl_range(0, 0, rows, columns-1)
header = [{'header': str(di)} for di in df.columns.tolist()]
ws.add_table(cell_range, {'header_row': True,'first_column': False,'columns':header,'data':df.values.tolist()})
wb.close()
1 голос
/ 19 июня 2020

Возможный дубликат: Как использовать метод xlsxwriter .add_table () с фреймом данных?

Вы можете попробовать преобразовать фрейм данных в список списков и использовать ключевое слово data.

ws.add_table(0,0,rows,columns, {'data': df.values.T.tolist()})
...