Лучшим способом сделать это было бы добавление аргумента double_precision
при сохранении:
df
a b c
0 0.2 0.245673 1.235
df.to_json(double_precision=3)
'{"a":{"0":0.2},"b":{"0":0.246},"c":{"0":1.235}}'
Обратите внимание, что 0.2 нельзя сохранить как 0.200, если вы хотите, чтобы значение оставалось числовым.
Однако вы можете конвертировать в строку.Пример,
df.applymap('{:.3f}'.format).to_json()
'{"a":{"0":"0.200"},"b":{"0":"0.246"},"c":{"0":"1.235"}}'