我必须在数据帧中将一列数字格式化为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
重要的是要保持数字类型
答案 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