gpt4 book ai didi

python - Pandas 读取具有浮点值的 csv 文件导致奇怪的舍入和小数位

转载 作者:太空狗 更新时间:2023-10-29 20:16:27 32 4
gpt4 key购买 nike

我有一个包含数值的 csv 文件,例如 1524.449677。总是有 6 位小数。

当我通过 pandas read_csv 导入 csv 文件(和其他列)时,该列自动获取数据类型 object。我的问题是这些值显示为 2470.6911370000003,实际上应该是 2470.691137。或者值 2484.30691 显示为 2484.3069100000002

这在某种程度上似乎是一个数据类型问题。我试图在通过 read_csv 导入时明确提供数据类型,方法是将 dtype 参数指定为 {'columnname': np.float64}。问题仍然没有消失。

我怎样才能让导入的值与源 csv 文件中的值完全一样?

最佳答案

Pandas 使用专用的 dec 2 bin 转换器,该转换器会牺牲准确性以牺牲速度。

float_precision='round_trip' 传递给 read_csv 可以解决这个问题。

查看 this page有关这方面的更多详细信息。

处理数据后,如果您想将其保存回 csv 文件,您可以将
float_format = "%.nf" 传递给相应的方法。

一个完整的例子:

import pandas as pd

df_in = pd.read_csv(source_file, float_precision='round_trip')
df_out = ... # some processing of df_in
df_out.to_csv(target_file, float_format="%.3f") # for 3 decimal places

关于python - Pandas 读取具有浮点值的 csv 文件导致奇怪的舍入和小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47368296/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com