DataFrame.round() / Series.round()

Метод round() округляет числовые значения до указанного числа знаков после запятой. Можно задать одно число знаков на всё либо разные знаки на разные столбцы через словарь.

Сигнатура

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

Параметры

  • decimals — число знаков (int) либо словарь {"col": n}.

  • Отрицательные значения округляют до десятков/сотен.

Возвращаемое значение

Новый DataFrame / Series того же типа.

Примеры

Пример 1. До 2 знаков

import pandas as pd

s = pd.Series([22.123456, 23.987654, 24.500001])
print(s.round(2))
0    22.12
1    23.99
2    24.50
dtype: float64

Пример 2. До целых

import pandas as pd

s = pd.Series([22.4, 22.5, 23.5])
print(s.round(0))
0    22.0
1    22.0
2    24.0
dtype: float64

Примечание

Pandas использует «банковское» округление (к ближайшему чётному), поэтому 22.5 → 22, а 23.5 → 24.

Пример 3. Разные знаки по столбцам

import pandas as pd

df = pd.DataFrame({
    "temp":  [22.123, 23.456],
    "press": [1013.5678, 1014.1234],
})
print(df.round({"temp": 1, "press": 2}))
   temp    press
0  22.1  1013.57
1  23.5  1014.12

Пример 4. Отрицательные decimals (округление до десятков)

import pandas as pd

s = pd.Series([1234, 5678, 9123])
print(s.round(-2))
0    1200
1    5700
2    9100
dtype: int64

Пример 5. После расчёта средних

import pandas as pd

df = pd.DataFrame({"sensor": ["A", "A", "B"], "temp": [22.1, 22.4, 25.7]})
means = df.groupby("sensor")["temp"].mean()
print(means.round(2))
sensor
A    22.25
B    25.70
Name: temp, dtype: float64

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.