pyspark.pandas.DataFrame.round

DataFrame.round(decimals: Union[int, Dict[Union[Any, Tuple[Any, …]], int], Series] = 0) → DataFrame

Round a DataFrame to a variable number of decimal places.

Parameters
decimalsint, dict, Series

Number of decimal places to round each column to. If an int is given, round each column to the same number of places. Otherwise dict and Series round to variable numbers of places. Column names should be in the keys if decimals is a dict-like, or in the index if decimals is a Series. Any columns not included in decimals will be left as is. Elements of decimals which are not columns of the input will be ignored.

Note

If decimals is a Series, it is expected to be small, as all the data is loaded into the driver’s memory.

Returns
DataFrame

See also

Series.round

Examples

>>> df = ps.DataFrame({'A':[0.028208, 0.038683, 0.877076],
...                    'B':[0.992815, 0.645646, 0.149370],
...                    'C':[0.173891, 0.577595, 0.491027]},
...                    columns=['A', 'B', 'C'],
...                    index=['first', 'second', 'third'])
>>> df
               A         B         C
first   0.028208  0.992815  0.173891
second  0.038683  0.645646  0.577595
third   0.877076  0.149370  0.491027
>>> df.round(2)
           A     B     C
first   0.03  0.99  0.17
second  0.04  0.65  0.58
third   0.88  0.15  0.49
>>> df.round({'A': 1, 'C': 2})
          A         B     C
first   0.0  0.992815  0.17
second  0.0  0.645646  0.58
third   0.9  0.149370  0.49
>>> decimals = ps.Series([1, 0, 2], index=['A', 'B', 'C'])
>>> df.round(decimals)
          A    B     C
first   0.0  1.0  0.17
second  0.0  1.0  0.58
third   0.9  0.0  0.49