熊猫浮动小数

时间:2019-10-24 17:10:49

标签: python pandas decimal

我正在尝试将具有各种数据类型的列的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似乎仅适用于其所有元素均为数字值的列。

2 个答案:

答案 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')