我有一个包含多个列的 Pandas 数据框,其类型为 float64 或字符串。我正在尝试to_csv将数据帧写入输出文件。然而,它用科学概念输出大数字。例如,如果数字为 1344154454156.992676,则它在文件中保存为 1.344154e+12。
如何抑制科学概念to_csv并保留输出文件中的数字?我尝试float_format在函数中使用参数to_csv,但它失败了,因为数据框中也有带有字符串的列。
以下是一些示例代码:
import pandas as pd
import numpy as np
import os
df = pd.DataFrame({'names': ['a','b','c'],
'values': np.random.rand(3)*100000000000000})
df.to_csv('example.csv')
os.system("cat example.csv")
,names,values
0,a,9.41843213808e+13
1,b,2.23837359193e+13
2,c,9.91801198906e+13
# if i set up float_format:
df.to_csv('example.csv', float_format='{:f}'.format)
ValueError: Unknown format code 'f' for object of type 'str'
Run Code Online (Sandbox Code Playgroud)
如果没有像下面这样的科学概念,如何获取保存在 csv 中的数据?
names values
0 a 94184321380806.796875
1 b 22383735919307.046875
2 c 99180119890642.859375
Run Code Online (Sandbox Code Playgroud)
小智 6
float_format 参数应该是 str,请使用它
df.to_csv('example.csv', float_format='%f')
Run Code Online (Sandbox Code Playgroud)