读取浮点值时不带小数位

Float values are being read without decimal places

提问人:Angel's Tear 提问时间:1/5/2023 最后编辑:Angel's Tear 更新时间:1/5/2023 访问量:70

问:

以下是 excel 文件中的值:

  • 7257.5679
  • 6942.0949714286
  • 5780.0125476250005

这是我read_excel:

DataFrame = pd.read_excel(File_Name, names=['id', 'value'], dtype={'id': str, 'value': float})

Pandas 输出:

  • 7258
  • 6942
  • 5780

在数据库中:

  • 7257.5679
  • 6942.0949714286
  • 5780.0125476250005

我想要在 pandas 和数据库中(FLOAT 列)中的内容:

  • 7258.56
  • 6942.09
  • 5780.01

如何更改read_excel以实现此结果?提前致谢!

Python Excel Pandas 浮点 精度

评论

0赞 BigBen 1/5/2023
你确定这不仅仅是你的熊猫显示精度吗?
1赞 Corralien 1/5/2023
你能提供你的文件样本吗?的输出是什么?DataFrame.info()
0赞 Angel's Tear 1/5/2023
@BigBen 显然这是对的,但我将此数据发送到 FLOAT 列中的数据库,并且那里的值没有四舍五入,它们与 excel 中的完全相同,只是数据帧不同!
0赞 BigBen 1/5/2023
听起来这是你的显示精度,与.read_excel
0赞 Angel's Tear 1/5/2023
@BigBen 但是数据库正在接收完整的记录,我该如何修改数据帧,以便在将其插入数据库时只有两个小数位?

答:

0赞 cionzo 1/5/2023 #1

文档中的示例使用 numpy 类型:

{‘a’: np.float64, ‘b’: np.int32}.

你试过使用吗?np.float64

评论

0赞 Angel's Tear 1/5/2023
输出是相同的,数据帧中显示的记录没有插入到数据库中,而是插入到 excel 中!
0赞 Angel's Tear 1/5/2023
显然,我只是对数据帧没有显示小数位但数据库插入了小数位这一事实感到困惑,无论如何,谢谢!