首页 > 解决方案 > Round To 1dp 给出错误的数字

问题描述

你如何将一列四舍五入到 1dp?

df value 
0 0.45
1 0.45

df.value.round(1)
0.4
0.4

标签: pythonpython-3.xpandasrounding

解决方案


您可以利用内置的 pythonround来获得所需的结果,如下所示

import pandas as pd
df = pd.DataFrame({'value':[0.45,0.45]})
df['rounded'] = df.value.apply(lambda x:round(x,1))
print(df)

输出

   value  rounded
0   0.45      0.5
1   0.45      0.5

pandas.Series.round和 built-in之间的差异round对我来说有点令人惊讶,但实际上可以用不止一种方法来舍入数字来解释。这不仅限于python——例如GNU AWK 手册描述了 5 种不同的舍入模式


推荐阅读