to_csv () записывает значения с дополнительными дробями - PullRequest
0 голосов
/ 04 февраля 2019

Я использую метод to_csv() для записи фрейма данных в файл .csv .У меня есть переменная с именем emotion, которая относится к фрейму данных, и я использую to_csv() следующим образом:

 emotion.to_csv(file_name,encoding='utf-8', index = False) 
 # file_name holds a string of a full path of the file which is intended to create

В этом фрейме данных содержится более 15.000 строк данных, и когда я открываючтобы проверить файл .csv, созданный методом to_csv, большинство строк выглядят нормально.Но есть несколько исключений.Вы можете увидеть кусок строк из файла .csv ниже;

2.8641,0.2737,38.18,73,97,291664 3.1672,0.2688,38.21,73,97,291667 3,4115,0,2786,38,11,73,97,291672 3,36,0,0737,38,18,73,97,291675 3,1719999999999997 , 0,2737,38,02,73,97,291678 2,7761,0,2737,38,15,73,97,291682 2,39,0.2688,38.18,73,97,291685 2.0674,0.2835,38.11,73,97,291688

Как я указывал выше со шрифтом bold на фрейме данныхзначения, 3.1719999999999997 имеет дополнительные дроби.В исходных данных это должно быть что-то вроде 3.171 .Не могли бы вы помочь мне преодолеть эту проблему?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

См. https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html

to_csv имеет этот хороший float_format аргумент ключевого слова, который вы можете установить.

emotion.to_csv(file_name, encoding='utf-8', index=False, float_format="%.3f") 
0 голосов
/ 04 февраля 2019

Это, вероятно, приведение, сделанное пандами при извлечении значений из вашего CSV.Если вы хотите ограничить количество цифр, отображаемых в кадре данных, вы можете использовать:

 pd.options.display.float_format = '${:,.3f}'.format

Это ограничит количество цифр до 3.

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