Skip to main content
`Ctrl`+`K`

# pandas.DataFrame.round

DataFrame.round(decimals=0, *args, **kwargs)

  Round numeric columns in a DataFrame to a variable number of decimal places.

  Each column can be rounded to a different number of decimal places by passing a dict or Series mapping column names to the desired precision. Non-numeric columns are left unchanged.

  Parameters:
    decimals int, 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.

    *args

      Additional keyword arguments have no effect but might be accepted for compatibility with NumPy. See NumPy compatibility kwargs for more.

    **kwargs

      Additional keyword arguments have no effect but might be accepted for compatibility with NumPy. See NumPy compatibility kwargs for more.

  Returns:
    DataFrame

      A DataFrame with the affected columns rounded to the specified number of decimal places.

  See also

  `numpy.around`

    Round a numpy array to the given number of decimals.

  `Series.round`

    Round a Series to the given number of decimals.

  Notes

  For values exactly halfway between rounded decimal values, pandas rounds to the nearest even value (e.g. -0.5 and 0.5 round to 0.0, 1.5 and 2.5 round to 2.0, etc.).

  Examples

      >>> 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

  By providing an integer each column is rounded to the same number of decimal places

      >>> 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

  With a dict, the number of places for specific columns can be specified with the column names as key and the number of decimal places as value

      >>> 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

  Using a Series, the number of places for specific columns can be specified with the column names as index and the number of decimal places as value

      >>> 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