Как не потерять точность при сохранении кадра данных в csv

#python #pandas #floating-accuracy

Вопрос:

У меня есть следующий фрейм данных:

       Direction      Date     Market     Quantity     Price      Commission  Charges
0        S        29/12/2020   IBTM    38.46538070  12.242512       0.0        0
1        S        29/12/2020   IDTG  1131.17689270    2.554843      0.0        0
2        S        29/12/2020   SGLN   563.28337820   7.236522       0.0        0
 

df[«Количество»] float64 — это тип dtype.

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

введите описание изображения здесь

таким образом, теряется некоторая точность для некоторых значений в df[«Количество»].

Я уже пробовал следующее:

 df['Quantity'] = df['Quantity'].map(lambda x: '%.8f' % x)
 

и затем:

 df.to_csv(r'/Users/Example.csv', index=False, float_format='%.8f')
 

но я все равно получаю тот же результат. Есть ли способ сохранить количество десятичных знаков при сохранении df.to_csv ?

Комментарии:

1. Вы уверены, что все, что вы используете для отображения csv-файла, не является усечением чисел только для визуализации? Можете ли вы попробовать проверить, есть ли у вас одинаковые десятичные дроби, открыв файл csv с помощью текстового редактора, например Блокнота?

2. @Simone Спасибо за ваш комментарий — правильное количество десятичных знаков отображается, когда я открываю файл .csv в текстовом редакторе. Однако единственный способ показать все десятичные знаки в моем сохраненном файле .csv-это вручную увеличить десятичные знаки в Excel.

3. Итак, ваш код на Python делает то, что вы хотите, это просто вопрос форматирования Excel.