我正在尝试将具有各种数据类型的列的cspandas DataFrame写入csv。我需要所有的float值都必须精确到小数点后4位。
例如。我定义了一个新的df:
df=pd.DataFrame({'col1': [0.24567899874, 'a'], 'col2' : [0.123456789, 1] })
然后使用float_format将其写入csv文件:
df.to_csv('example.csv', float_format='%.4f')
我得到结果: col1,col2 0.24999999999986597,0.1234 a,1.0000
float_format似乎仅适用于其所有元素均为数字值的列。
答案 0 :(得分:0)
for col in df.columns:
if df[col].dtype == 'float':
df[col].round(4)
答案 1 :(得分:0)
您可以这样做:
for col in df.columns:
df[col] = df[col].apply(lambda x: '{:.4f}'.format(x) if type(x) is int or type(x) is float else x)
df.to_csv('example.csv')