将Python值舍入到最近的一半

时间:2018-03-08 03:24:06

标签: python dataframe

我现在正在使用python数据帧来解决一些问题。我有一列有很长的数字列表,范围从1-5。例如,该列包含值(3.6,2.1,4.7,3.8,1.9等等)。我想要做的是将每个数字四舍五入到最接近的HALF数字(不是最接近的整数)。

我想要做的是创建一个新列,它将返回值(3.5,2.0,4.5,4.0,2.0等)。从概念上讲,这非常简单,但我在数据框架中无法做到这一点。

我最初的想法是使用int函数将值四舍五入到最接近的整数。然后我会从中减去我的初始值。然后,根据返回的值,我将确定如何舍入每个值。然而到目前为止,我一直没有成功。

我一直遇到以下错误,例如:“无法将系列转换为”

DataFrame

1 个答案:

答案 0 :(得分:2)

您可以使用round和一点算术来获得所需的结果:

round(num*2)/2会将数字四舍五入到最近的0.5

以下是将其应用于数据框的方法:

>>> df = pd.DataFrame(data={'col1': [3.6, 2.1, 4.7, 3.8, 1.9]})
>>> df
   col1
0   3.6
1   2.1
2   4.7
3   3.8
4   1.9
>>> df['col2'] = df.col1.mul(2).round().div(2)
>>> df
   col1  col2
0   3.6   3.5
1   2.1   2.0
2   4.7   4.5
3   3.8   4.0
4   1.9   2.0