在 pandas 中读取和写入 csv 会更改单元格值

Posted

技术标签:

【中文标题】在 pandas 中读取和写入 csv 会更改单元格值【英文标题】:reading and writing csv in pandas changes cell values 【发布时间】:2013-04-08 13:12:07 【问题描述】:

我刚开始学习 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 参数,但为了让它工作,我必须安装更新版本的 pandas,因为它在 ubuntu 12.10 的默认 0.8 pandas 中不起作用。现在好了。谢谢!

【问题讨论】:

【参考方案1】:

例如:

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

【讨论】:

【参考方案2】:

您在输出 csv 中看到的是相同的值,但精度更高。

【讨论】:

看看这个 - ***.com/questions/12877189/float64-with-pandas-to-csv

以上是关于在 pandas 中读取和写入 csv 会更改单元格值的主要内容,如果未能解决你的问题,请参考以下文章

pandas读取和写入excel,csv太慢怎么办

pandas读取和写入excel,csv太慢怎么办

如何在通过 Pandas 在 csv 中写入多个 for 循环的数据时在单个单元格中附加数据?

pandas实现数据的读取和写入

:Pandas功能介绍及应用

pandas读取csv文件时报错:ParserError: Error tokenizing data. C error