Полный пример:

я есть CSV-файл, содержащий числовые значения, такие как1524.449677, Всегда есть ровно 6 знаков после запятой.

Когда я импортирую CSV-файл (и другие столбцы) через пандread_csvстолбец автоматически получает тип данныхobject, Моя проблема в том, что значения отображаются как2470.6911370000003 что на самом деле должно быть2470.691137, Или значение2484.30691 отображается как2484.3069100000002.

Это похоже на проблему с типом данных. Я пытался явно указать тип данных при импорте черезread_csv даваяdtype аргумент как{'columnname': np.float64}, Тем не менее проблема не ушла.

Как я могу получить значения, импортированные и показанные точно так, как они есть в исходном CSV-файле?

 beta18 нояб. 2017 г., 17:32
ничего не меняет
 coldspeed18 нояб. 2017 г., 17:30
Что делатьdf['col'] = df['col'].astype(float)?

Ответы на вопрос(1)

Решение Вопроса

dec 2 bin преобразователь, который ставит под угрозу точность в предпочтении скорости.

Переходяfloat_precision='round_trip' вread_csv исправляет это.

Проверять, выписыватьсяэта страница для более подробной информации об этом.

После обработки ваших данных, если вы хотите сохранить их обратно вCSV файл, вы можете передать
float_format = "%.nf" к соответствующему методу.

Полный пример:

import pandas as pd

df_in  = pd.read_csv(source_file, float_precision='round_trip')
df_out = ... # some processing of df_in
df_out.to_csv(target_file, float_format="%.3f") # for 3 decimal places

Ваш ответ на вопрос