【问题标题】:truncate float values to 8 decimal places with pandas.to_excel使用 pandas.to_excel 将浮点值截断到小数点后 8 位
【发布时间】:2019-03-01 01:39:31
【问题描述】:

我有一个数据框,其中的列包含浮点值。 其中一个单元格包含 0.021893287

的值

我已将 pandas 选项设置为:

pd.set_option('precision', 8)

当我尝试将数据框导出到 excel 时:

data_final.to_excel(writer,'Sheet1',float_format='%.8f',index=False)

当我在 excel 中看到值时,它会显示一个值 0.02189329

但是我想要 0.02189328

的值

【问题讨论】:

  • 为什么要一个不正确的值?
  • @IanS 我只想要小数点后的 8 位数字。最后取“29”是值的四舍五入,因为它是从 0.021893287 到 0.02189329 的舍入。我不想四舍五入。

标签: pandas dataframe floating-point precision


【解决方案1】:

您可以将其转换为字符串,截断它,然后将其转换回浮点数。例如:

float(str(0.021893287)[0:10]) 将输出0.02189328

在 DataFrame data_final 中,您可以对整列执行此操作

data_final['col_name'].apply(lambda x: float(str(x)[0:10])

【讨论】:

    猜你喜欢
    • 2017-07-04
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多