从函数返回数据帧时Python中的浮点

从函数返回数据帧时Python中的浮点,python,pandas,floating-point,Python,Pandas,Floating Point,我还不能用一个简单的例子来重复这一点,但也许我可以试着解释一下。我有这样一个函数: 将熊猫作为pd导入 def myfile(): A=pd.read\u csv('myfile.csv') [一些处理] A.to_csv('myfile2.csv')) 归还 现在的问题是如果我这样做 t1=myfile() t2=pd.read\u csv('myfile2.csv') 他们最终返回不同的结果!我保存了t1和t2并对它们进行了diff,结果发现它们的浮点值不同,如下所示 2c2 <

我还不能用一个简单的例子来重复这一点,但也许我可以试着解释一下。我有这样一个函数:

将熊猫作为pd导入
def myfile():
A=pd.read\u csv('myfile.csv')
[一些处理]
A.to_csv('myfile2.csv'))
归还
现在的问题是如果我这样做

t1=myfile()
t2=pd.read\u csv('myfile2.csv')
他们最终返回不同的结果!我保存了
t1
t2
并对它们进行了
diff
,结果发现它们的浮点值不同,如下所示

2c2
< A,-61.54871999999999,-30.01167
---
> A,-61.54871999999997,-30.01167
5c5
2c2
A,-61.548719999997,-30.01167
5c5
不幸的是,保存的版本给了我“正确”的结果。为什么返回值和读取值会不同


[有类似的问题,但不完全是这样的:例如,请看]

可能不完全是重复的,但我无法阅读一个对比
-61.548719999999
-61.548719999997
的问题,而没有想到这可能是的伪装版本。@JohnColeman:我知道你的意思,你是对的,问题是我只想让
t1
t2
返回相同的数据帧,仅此而已……我的猜测是
to_csv
将双精度舍入到某个精度(以10为基数)。这会导致信息丢失,
read\u csv
无法恢复的信息。众所周知,典型的csv是一种有损于存储浮点数据的方式。我不完全理解这个问题,但与一个相关的问题似乎是相关的。也许不是完全重复,但我无法阅读一个对比
-61.548719999999
-61.548719999997
的问题,而没有想到这可能是一个伪装的版本。@johncolman:我知道你的意思,你是对的,问题是我只想让
t1
t2
返回相同的数据帧,仅此而已……我的猜测是
to_csv
将双精度舍入到某个精度(以10为基数)。这会导致信息丢失,
read\u csv
无法恢复的信息。众所周知,典型的csv是一种有损于存储浮点数据的方式。我不完全理解这个问题,但与一个相关的问题似乎相关。