在pandas列中舍入值的正确方法

时间:2019-06-03 08:38:42

标签: python python-3.x pandas rounding

有很多主题描述python 3舍入问题,以及如何将其求解为单个值,但是我找不到如何在pandas数据框中舍入值。

input:
  A,B
  1.5,2
  1.2,3
  2.5,1

df['A']=df['A'].astype(float).round(decimals=0)
output in python 2:
 A,B
  2,2
  1,3
  3,1
output in python 3:

 A,B
  1,2
  1,3
  2,1

如何从python 3中的python 2中获得pandas列的结果?

我尝试将其转换为小数,但不适用于熊猫。

我的解决方法是:

df['A']=np.floor(df['A'].astype(float)+0.5)

有更好的主意吗?

2 个答案:

答案 0 :(得分:0)

您可以使用numpy.around在python3中四舍五入为数据框。

https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.around.html

这是一个例子

    import pandas as pd
    import numpy as np

    df = pd.DataFrame([[1.5,2],[1.2,3]])
    print(df)
    >>>      0  1
       0   1.5  2
       1   1.2  3
    df = np.around(df)
    print(df)
    >>>      0  1
       0   2.0  2
       1   1.0  3

答案 1 :(得分:0)

在python 3中为我做这件事的最好方法是:

df['A']=np.floor(df['A'].astype(float)+0.5)

目前我看不到更好的方法

致谢