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.