首页 > 解决方案 > pd.to_csv 用列表设置 float_format

问题描述

我需要将 df 写入文本文件,以节省磁盘空间我想为每列设置小数位数,即每列具有不同的宽度。

我努力了:

df = pd.DataFrame(np.random.random(size=(10, 4)))
df.to_csv(path, float_format=['%.3f', '%.3f', '%.3f', '%.10f']) 

但这不起作用;

类型错误:不支持的操作数类型 %:'list' 和 'float'

关于如何使用 pandas 执行此操作的任何建议(版本 0.23.0)

标签: pythonpandas

解决方案


你可以这样做:

 df.iloc[:,0:3] = df.iloc[:,0:3].round(3)
 df['d'] = df['d'].round(10)
 df.to_csv('path')

推荐阅读