Причина изменения плавающих значений при сохранении Pandas кадра данных в CSV - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь сохранить Pandas фрейм данных в файл .csv, и я попытался с приведенным ниже кодом.

submission_df.head()

, тогда я получил следующий результат в качестве заголовка моего фрейма данных.

enter image description here

Позже я использовал приведенный ниже код для сохранения кадра данных в файл .csv и искал заголовок моего файла .csv. Результат отличался от приведенного выше.

submission_df.to_csv('/path/to/data/my_submission.csv', index=True)
!head my_submission.csv

Вывод:

respondent_id,h1n1_vaccine,seasonal_vaccine
26707,0.3068268366257748,0.5357696271429706
26708,0.05339661850925804,0.09507477609876568
26709,0.2570858695164222,0.741100787519942
26710,0.661774113692513,0.8678233487008229
26711,0.4957192566760516,0.6196195378487251

Мне нужно знать причину такого поведения. (Однако правильные значения данных в кадре были сохранены в файле .csv, и неверны только напечатанные значения)

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Ваш CSV-файл правильный , поскольку он сохранил реальные значения вашего фрейма данных с гораздо более высокой точностью.

Вы можете быть смущены выводом вашего submission_df.head() команда, которая (по умолчанию) отображает округленные значения с плавающей запятой (до 6 десятичных знаков после запятой).

(типы данных значений в 2-й и 3-й столбцы вашего фрейма данных - float64, что означает 16 значащих цифр в десятичной форме.)

Вы можете изменить отображение по умолчанию с помощью команды

pd.options.display.float_format = '{:.16f}'.format

перед применением команды submission_df.head(), чтобы увидеть, что числа в вашем кадре данных такие же, как в выходном файле CSV.


Примечание:

Вы можете сбросить измененную опцию отображения для чисел с плавающей точкой обратно на значение по умолчанию с помощью команды

pd.options.display.float_format = None
0 голосов
/ 02 мая 2020

Я думаю, что вы читаете другой файл. Так как вы храните свой файл в /path/to/data/, вы должны прочитать файл по этому пути. Попробуйте это

!head /path/to/data/my_submission.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...