Pandas读_csv/to_csv产生不一致的结果

2024-04-30 05:39:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是一个大型混合类型的pandas数据帧,在使用pandas.DataFrame.read_csv写入并重新读取文件后,有大量观察结果与文本文件(或原始数据帧)中的原始值不匹配。如果我在文本编辑器中打开文本文件并找到一个特定的值,那么在读取之后它将不匹配。在

示例psuedo代码如下所示

# Hard code value found in text file, no additional digits
val = -2.631
# Re-read DataFrame
df = pd.read_csv('temp.csv', index=False)
print df.Var1.iloc[10]
... -2.6310000000000002
print df.Var1.iloc[10] == val
... False

谢谢。在


Tags: 文件csv数据false类型dataframepandasdf
1条回答
网友
1楼 · 发布于 2024-04-30 05:39:10

问题在于python存储float的方式。当您输入的字串转换成记忆体中的数字时,会有一些精确度的损失。您可以使用decimal模块将字符串精确地转换为float。在

>>> val = -2.631
>>> val
-2.6309999999999998
>>> import decimal
>>> val = decimal.Decimal('-2.631')
>>> val
Decimal('-2.631')
>>> print val
-2.631

我怀疑熊猫有一些内在的方式来处理漂浮物,但我不知道它是什么。在

相关问题 更多 >