【问题标题】:Pandas read_csv to adding some very small values to the dataframePandas read_csv 向数据框添加一些非常小的值
【发布时间】:2019-08-28 19:20:00
【问题描述】:

当我使用 pandas read_csv 时,pandas 为数据框添加了一些小价值,它从 -0.079257 变为 -0.07925700000000001,为什么会发生这种情况,我该如何解决?它也只发生在某些特定的值上,而其他的似乎很好。

我尝试过使用 float_precision,但似乎什么也没做,我是 pandas 的新手

df = pd.read_csv('filepath') 
print(df.iat[0,0])

Dataset Link

我使用记事本手动将数据集文件类型从 txt 更改为 csv。

Dataset Image

【问题讨论】:

  • 能否添加csv文件的部分数据和您的预期输出,以便其他人可以帮助您解决问题。
  • 已经将链接放入数据集,我希望从数据集中获得相同的值,例如 -0.079257,而不是 -0.07925700000000001

标签: python-3.x pandas


【解决方案1】:

这是因为您的原始数据具有 np.float32 精度。

import pandas as pd

df = pd.read_csv('./avila/avila-ts.txt')
print(df.iat[0,0])    # 0.13029200000000002

# stored as np.float32
df.to_csv('./my.csv',float_format=np.float32, index_label=False)
df_1 = pd.read_csv('./my.csv')
print(df_1.iat[0,0])   # 0.13029200000000002

# stored as np.float16
df.to_csv('./my.csv',float_format=np.float16, index_label=False)
df_1 = pd.read_csv('./my.csv')
print(df_1.iat[0,0])   # 0.1302

【讨论】:

  • 谢谢,我认为它可以完成这项工作,但我仍然不知道为什么会这样。
  • 这是因为这些数据本身具有更高的精度,具体取决于您在存储数据时选择的浮点精度。
【解决方案2】:

我不知道您的数据是什么结构。你能打开数据检查一下,最好还是截图。

data = pandas.read_csv('filepath')
data.head()

【讨论】:

  • 我已经放了一些截图,我还是新手
猜你喜欢
  • 1970-01-01
  • 2020-10-13
  • 2013-10-05
  • 2014-05-04
  • 2017-11-16
  • 2019-05-04
  • 2021-11-09
  • 1970-01-01
相关资源
最近更新 更多