下面的代码在Python2.7.5.final.0(pandas 0.15.1和numpy 1.9.1)和python2.7.11.final.0(pandas 0.18.0和numpy 1.10.4)中生成不同的结果。在
前一个版本给出结果18292498239.8
;后一个版本给出18292498239.824
。在
import numpy as np
import pandas as pd
x = 18292498239.824
df = pd.DataFrame({'One': x},index=["bignum"])
df.to_csv('junktest.txt')
fh = open('junktest.txt','rb')
res = fh.read().split('\n')[1].split(',')[1]
print "Result:",res
但是如果我们把x设为292498239.824
,我们从这两个函数得到相同的结果:292498239.824
。如果我们增加一个数量级(x = 118292498239.824
),结果是1.1829249824e+11
和{
看起来pandas.DataFrame.to_csv()
的最新版本将浮动限制为12位数,但我在pandas文档中找不到任何内容来说明更改是何时发生的——或者为什么发生的。在
这导致我的一些单元测试在升级到anaconda时失败;我希望能够升级而不必大量修改我的测试。在
更新2:
您可以尝试使用
np.set_printoptions(precision=20)
函数:给了我
d:/温度/a.csv:
^{pr2}$注:使用熊猫0.18.1
数据框:
旧答案:
在to_csv()调用中使用
float_format='%16.4f'
参数文件:
相关问题 更多 >
编程相关推荐