使用指定数量的十进制数字格式化熊猫数据框的数字列

时间:2019-02-19 16:36:45

标签: python pandas formatting

我必须在数据帧中将一列数字格式化为pandas,将其四舍五入为两个,但要使用三个十进制数字,其中最后一个为0,并且该列不必为字符串。该列的数字必须表示出来,以便一旦导出到Excel。

d = {'col1': [0.567, 2.54765476], 'col2': [3, 4]}
df = pd.DataFrame(data=d)

         col1  col2
0       0.567     3
1  2.54765476     4

预期:

    col1  col2
0  0.560     3
1  2.540     4

重要的是要保持数字类型

2 个答案:

答案 0 :(得分:1)

您可能需要floor div,然后需要format

df.col1=(np.floor(df.col1*100)/100).map('{:,.3f}'.format)
df
Out[355]: 
    col1  col2
0  0.560     3
1  2.540     4

答案 1 :(得分:0)

如您所说,如果需要舍入而不是字符串截断,那么假设您的第二个值应为2.550,则可以使用@G链接到here的Pandas float显示选项。安德森:

pd.options.display.float_format = '{:,.3f}'.format
df.col1 = df.col1.round(2)
df
>   
    col1    col2
0   0.570   3
1   2.550   4