pandas.DataFrame.round#

DataFrame.round(decimals=0, *args, **kwargs)[源代码][源代码]#

将 DataFrame 四舍五入到可变的小数位数。

参数:
小数int, dict, Series

每列要四舍五入的小数位数。如果给定一个整数,则每列四舍五入到相同的小数位数。否则,字典和系列四舍五入到不同的小数位数。如果 decimals 是一个类似字典的对象,则列名应在键中;如果 decimals 是一个系列,则列名应在索引中。任何未包含在 decimals 中的列将保持不变。decimals 中不是输入列的元素将被忽略。

*args

额外的关键字没有效果,但可能被接受以兼容 numpy。

**kwargs

额外的关键字没有效果,但可能被接受以兼容 numpy。

返回:
DataFrame

一个包含受影响列并四舍五入到指定小数位数的 DataFrame。

参见

numpy.around

将 numpy 数组四舍五入到给定的位数。

Series.round

将一个 Series 四舍五入到给定的位数。

备注

对于恰好介于四舍五入的十进制值之间的值,pandas 会四舍五入到最近的偶数值(例如,-0.5 和 0.5 四舍五入到 0.0,1.5 和 2.5 四舍五入到 2.0,等等)。

例子

>>> df = pd.DataFrame(
...     [(0.21, 0.32), (0.01, 0.67), (0.66, 0.03), (0.21, 0.18)],
...     columns=["dogs", "cats"],
... )
>>> df
    dogs  cats
0  0.21  0.32
1  0.01  0.67
2  0.66  0.03
3  0.21  0.18

通过提供一个整数,每一列都四舍五入到相同的小数位数

>>> df.round(1)
    dogs  cats
0   0.2   0.3
1   0.0   0.7
2   0.7   0.0
3   0.2   0.2

使用字典,可以通过将列名作为键,将小数位数作为值来指定特定列的小数位数。

>>> df.round({"dogs": 1, "cats": 0})
    dogs  cats
0   0.2   0.0
1   0.0   1.0
2   0.7   0.0
3   0.2   0.0

使用 Series,可以通过将列名作为索引并将小数位数作为值来指定特定列的小数位数。

>>> decimals = pd.Series([0, 1], index=["cats", "dogs"])
>>> df.round(decimals)
    dogs  cats
0   0.2   0.0
1   0.0   1.0
2   0.7   0.0
3   0.2   0.0