我刚开始学习 pandas 并注意到一个非常奇怪的行为,读取和写入 csv 文件会更改数据框单元格的值。
前:
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
对于我做错的任何建议,我将不胜感激。我正在使用来自 ubuntu 12.10 存储库 (0.8.0) 的 Python (2.7.3) 和 pandas 的标准安装
编辑:我认为这是一个错误:https ://github.com/pydata/pandas/issues/2069 感谢 user1827356 我找到了 to_csv 方法的 float_format 参数,但要使其工作,我必须安装更新版本的熊猫,因为它在 ubuntu 12.10 的默认 0.8 pandas 中不起作用。现在好了。谢谢!