2013-04-08 2 views
0

Я только начал изучать панды и заметил очень странное поведение, чтение и запись csv-файлов изменяет значения ячеек кадра данных.чтение и запись csv в pandas изменения значения ячейки

перед:

64437311025 SMP 1 110.00 0.00 498.00 4174.3865 4243.59 4247.69 4424.62 4570.26 3874.36 4516.41 4412.31 4117.44 4215.38 4300.00 4433.85 4065.64 4394.36 1728.00 1675.00 1517.27 1363.23 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0 0 0 0 0 0 0 0 0 0.00 0 0.00 

после выдачи:

df = pd.read_csv(in_file, sep='\t') 
df.to_csv(out_file, sep='\t') 

я получаю:

1 64437311025 SMP 1 110.0 0.0 498.0 4174.3864999999996 4243.5900000000001 4247.6899999999996 4424.6199999999999 4570.2600000000002 3874.3600000000001 4516.4099999999999 4412.3100000000004 4117.4399999999996 4215.3800000000001 4300.0 4433.8500000000004 4065.6399999999999 4394.3599999999997 1728.0 1675.0 1517.27 1363.23 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0.0 0 0.0 

Я был бы признателен за любые предложения относительно того, что я делаю неправильно. Я использую стандартную установку Python (2.7.3) и панда из убунта 12.10 хранилищ (0.8.0)

EDIT: я думаю, что это ошибка: https://github.com/pydata/pandas/issues/2069 благодаря user1827356 я нашел float_format аргумента to_csv метод, но чтобы он работал, мне пришлось установить более новую версию pandas, так как она не работала в 0,8 pandas по умолчанию в ubuntu 12.10. теперь все в порядке. благодаря!

ответ

1

, например:

df.to_csv('pandasfile.csv', float_format='%.3f') 
1

То, что вы видите на вашем выходе csv, имеет одинаковые значения, но с более высокой точностью.

+0

нормально, но почему это происходит? и как этого избежать? – yemu

+0

Взгляните на это - http://stackoverflow.com/questions/12877189/float64-with-pandas-to-csv – user1827356

+0

Я думаю, что это была ошибка: https://github.com/pydata/pandas/issues/ 2069 – yemu

Смежные вопросы