首页 > 解决方案 > 使用 loc 的 Pandas 浮点值问题

问题描述

对于习惯于浮动数字的 Pandas 用户来说,这可能是一件容易的事,但我会认真对待,老实说,我会很感激你的建议。

使用 .loc 时,我无法检索保存到数据框中的值

有人可以解释并帮助解决吗?谢谢!

dict = [{'me': 0.094092328767113}]
df = pandas.DataFrame(dict)
df['me']
Out[32]: 
0    0.094092328767113
Name: me, dtype: float64
df.loc[0,'me']
Out[33]: 0.094092328767113001

标签: pythonpython-3.xpandasnumpyfloating-accuracy

解决方案


您可以使用基本的字符串格式 -

>>> '{:.15f}'.format(df.loc[0,'me'])
>>> '0.094092328767113'

这将导致字符串数据类型。此外,如果您需要使用,您可以将其转换为浮动numpy-

>>> np.float64('{:.15f}'.format(df.loc[0,'me']))
>>> 0.094092328767113

正如 OP 在评论中确认的那样,最终修复归结为升级 Pandas 和 NumPy 的版本。


推荐阅读