gpt4 book ai didi

python - 如何使用 pandas to_csv float_format?

转载 作者:太空宇宙 更新时间:2023-11-04 02:21:35 24 4
gpt4 key购买 nike

我正在读取一个精度为 8 的数据文件,然后在插入一些值之后我将它们保存为 float_format 选项不起作用的地方,

df.to_csv('data.dat',sep=' ', index=False, header=False, float_format="%.8f")

结果文件看起来像

0.02506602 0.05754493 0.36854688
0.02461631 0.0599653 0.43078098
0.02502534 0.06209149 0.44955311
0.4267356675182389 0.1718682822340447 0.5391386354945895
0.426701667727433 0.17191008887193007 0.5391897818631616
0.4266676661681287 0.17195189807522643 0.5392409104354972

前 3 行在数据文件中,接下来的 3 行是新的插值。我希望所有值的长度都相同。这里出了什么问题,我该如何解决?

此外:如果我可以针对不同的列以不同方式控制浮点精度,那就太好了。

最佳答案

您的代码看起来不错。您的输入数据很可能存在问题。使用 pd.DataFrame.dtypes 检查您所有的输入系列都是 float 类型。如果它们没有通过以下方式转换为 float:

df[col_list] = df[col_list].apply(pd.to_numeric, downcast='float').fillna(0)

这是一个工作示例:

from io import StringIO
import pandas as pd

mystr = StringIO("""0.02506602 0.05754493 0.36854688
0.02461631 0.0599653 0.43078098
0.02502534 0.06209149 0.44955311
0.4267356675182389 0.1718682822340447 0.5391386354945895
0.426701667727433 0.17191008887193007 0.5391897818631616
0.4266676661681287 0.17195189807522643 0.5392409104354972""")

df = pd.read_csv(mystr, delim_whitespace=True, header=None)

print(df.dtypes)

# 0 float64
# 1 float64
# 2 float64
# dtype: object

file_loc = r'C:\temp\test.dat'
df.to_csv(file_loc, sep=' ', index=False, header=False, float_format="%.8f")

df = pd.read_csv(file_loc, delim_whitespace=True, header=None)

print(df[0].iloc[-1])

# 0.42666767

关于python - 如何使用 pandas to_csv float_format?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51476690/

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