DataFrame.mean() / Series.mean()
Метод mean() вычисляет среднее арифметическое: для Series — одно число, для DataFrame — по каждому столбцу (или строке) числовых данных. По умолчанию пропуски (NaN) игнорируются.
Сигнатура
DataFrame.mean(axis=0, skipna=True, numeric_only=False, **kwargs)
Series.mean(axis=0, skipna=True, **kwargs)
Параметры
axis—0(по столбцам, результат —Seriesс одной средней на столбец) или1(по строкам).skipna— игнорироватьNaN(по умолчаниюTrue).numeric_only— учитывать только числовые столбцы.
Возвращаемое значение
Скаляр (для Series) или Series (для DataFrame).
Примеры
Пример 1. Среднее Series
import pandas as pd
s = pd.Series([22.0, 22.5, 23.0, 22.8])
print(s.mean())
22.575
Пример 2. Среднее по каждому столбцу
import pandas as pd
df = pd.DataFrame({
"temp": [22, 23, 21, 24],
"humidity": [55, 60, 58, 62],
})
print(df.mean())
temp 22.50
humidity 58.75
dtype: float64
Пример 3. Среднее по строкам
Средняя температура двух датчиков для каждого момента времени:
import pandas as pd
df = pd.DataFrame({"t_a": [22, 23, 24], "t_b": [22.5, 23.5, 24.5]})
print(df.mean(axis=1))
0 22.25
1 23.25
2 24.25
dtype: float64
Пример 4. С пропусками
import pandas as pd
import numpy as np
s = pd.Series([10, np.nan, 30, np.nan, 50])
print(s.mean())
print(s.mean(skipna=False))
30.0
nan
Пример 5. Только числовые столбцы
import pandas as pd
df = pd.DataFrame({
"sensor": ["A", "B", "C"],
"temp": [22, 23, 24],
})
print(df.mean(numeric_only=True))
temp 23.0
dtype: float64
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.