Я пытаюсь экспортировать строку CSV в веб-приложение D3, но команда to_csv
настаивает на добавлении конечного 0 к данным, что препятствует правильному использованию D3.
Вотминимальный пример для иллюстрации проблемы.
Мой (упрощенный) фрейм данных:
>>> df = pd.DataFrame([['Alex',20.0000, 50.650]],columns=['Name','Age', 'Weight'])
Name Age Weight
0 Alex 20.0 50.65
df['Age']
содержит float
, как указано:
>>> df['Age']
0 20.0
Name: Age, dtype: float64
Затем, основываясь на этом ответе , я запускаю .astype(object)
, чтобы получить желаемый формат:
>>> df=df.astype(object)
Name Age Weight
0 Alex 20 50.65
Теперь df['Age']
содержит object
без конечного нуля:
>>> df['Age']
0 20
Name: Age, dtype: object
Это то, что я хотел бы экспортировать с to_csv
, но эта команда снова добавляет завершающий 0 к числу, которого я хочу избежать:
>>> df_csv = df.to_csv(sep=',', index = False)
>>> df_csv
'Name,Age,Weight\nAlex,20.0,50.65\n'
Я пытался использоватьdf_csv = df.to_csv(sep=',', index = False, float_format='%.0f')
на основе этого ответа , но это не сработает, потому что в моем фрейме данных есть другие числа с плавающей запятой, для которых я хочу сохранить ненулевые десятичные дроби.
Как можно это предотвратить?конечный 0 для чисел без десятичных знаков?