Python Pandas: заставить сохранять df в числовых значениях csv с 4 цифрами - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть датафрейм с числами с плавающей точкой, и я хотел бы сохранить его с тем же количеством цифр.Это мой фрейм данных df:

       1     0.917007  0.920562  0.922801  0.922745  0.917396  0.922445   
       2     0.914374  0.926690  0.914257  0.914607  0.914462  0.910307   
       3     0.919565  0.907405  0.916554  0.916463  0.919817  0.917184   
       4     0.912238  0.915469  0.900786  0.900752  0.912059  0.919894   
       5     0.906972  0.920995  0.918015  0.918200  0.908895  0.907092 

И я сохраняю его, делая:

from pandas import ExcelWriter
writer = ExcelWriter('PythonExport.xlsx')
table.to_excel(writer,'aName',float_format='%11.4f')
writer.save()

Но когда я открываю файл, я вижу это:

enter image description here

Как мне сделать так, чтобы количество цифр, сохраненных для каждой ячейки, было получено ?:

enter image description here

Редактировать: то же самое происходит при попытке сохранить как csv файл со следующим

table.to_csv('PythonExport.csv', sep=',',float_format='%11.4f')

Примечание: я использую python3

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Следующее должно работать, как описано здесь

df.applymap('{:.4f}'.format).to_csv('PythonExport.csv')

Чтобы убедиться, что вы открываете .csv в текстовом редакторе, а не в Excel.

0 голосов
/ 30 ноября 2018

Вам нужно создать формат, а затем добавить его в столбец, куда бы вы ни добавили, это может вам помочь.

df.to_excel(writer, sheet_name='Sheet1')
workbook  = writer.book
worksheet = writer.sheets['Sheet1']
format1 = workbook.add_format({'num_format': '0.0000'})
worksheet.set_column('B:B', None, format1)
writer.save()

Дополнительная информация: http://xlsxwriter.readthedocs.io/example_pandas_column_formats.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...