XLSXWriter Pandas Экспорт усеченных или округленных чисел - PullRequest
0 голосов
/ 31 декабря 2018

У меня проблемы с экспортом данных с помощью xlsxwriter.Столбец с очень длинными целыми числами в базе данных усекается и отображается в научной записи.Как мне настроить pandas и xlsxwriter для передачи полного числа через фрейм данных в xlsxwriter вместо того, чтобы давать мне усеченный результат?

Столбец, с которым у меня возникают проблемы, это newdf ['Record ID'],поэтому, пожалуйста, помогите мне настроить приведенный ниже код так, чтобы все число проходило через него.

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

    output = io.BytesIO()
    writer = pd.ExcelWriter(output, engine='xlsxwriter')
    newdf.to_excel(writer, sheet_name='NewDF Sheet')
    writer.save()
    resp = make_response(output.getvalue())
    resp.headers["Content-Disposition"] = "attachment; filename=output.xlsx"
    resp.headers["Content-Type"] = "application/vnd.ms-excel"

Приведенный выше код выполняется в приложении фляги и экспортирует фрейм данных в файл xlsx.Фрейм данных содержит столбцы newdf ['ID записи'], которые должны экспортировать все число, но экспортируются только первые несколько цифр, а концы отображаются как ноль.Это также отображается в научной нотации.

ОБНОВЛЕНИЕ: я решил свою проблему, установив опцию в Excel Writer как options = {'strings_to_numbers': False}, как показано ниже.Столбец на самом деле уже был строкой в ​​пандах, но все равно записывается в Excel в качестве числа, если вы не установили эту опцию.Я включил преобразование строк в свой ответ для полного решения.

writer = pd.ExcelWriter(output, engine='xlsxwriter', options={'strings_to_numbers': False})
newdf['Record ID'] = newdf['Record ID'].astype('str')
newdf.to_excel(writer, sheet_name='NewDF Sheet', index=False)
writer.save()

1 Ответ

0 голосов
/ 02 января 2019

Я решил свою проблему, установив параметр в Excel Writer как options = {'strings_to_numbers': False}, как показано ниже.Столбец на самом деле уже был строкой в ​​пандах, но все равно записывается в Excel в качестве числа, если вы не установили эту опцию.Я включаю преобразование строк в свой ответ для полного решения.

writer = pd.ExcelWriter(output, engine='xlsxwriter', options={'strings_to_numbers': False})
newdf['Record ID'] = newdf['Record ID'].astype('str')
newdf.to_excel(writer, sheet_name='NewDF Sheet', index=False)
writer.save()
...