Плавающая точка в Python pandas при возврате фрейма данных из функции - PullRequest
1 голос
/ 06 мая 2020

Я не смог воспроизвести это на минимальном примере, но, возможно, я смогу попытаться объяснить это. У меня есть такая функция:

import pandas as pd
def myfile():
   A = pd.read_csv('myfile.csv')
   [some processing]
   A.to_csv('myfile2.csv')
   return A

Теперь проблема в том, что если я сделаю

t1 = myfile()
t2 = pd.read_csv('myfile2.csv')

, они вернут разные результаты! Я сохранил как t1, так и t2 и сделал diff на них, только чтобы обнаружить, что они различаются в числах с плавающей запятой, например,

2c2
< A,-61.54871999999999,-30.01167
---
> A,-61.54871999999997,-30.01167
5c5

К сожалению, сохраненная версия дает мне " правильные "результаты. Почему возвращаемые значения и read_csv могут отличаться?

[Есть аналогичный вопрос, но не совсем такой: см. здесь , например]

...