Среднее в Pandas: Как рассчитать среднее для одной или нескольких колонок
Last updated
Last updated
В этом посте вы узнаете, как вычислить среднее значение (average) в Pandas для одного столбца, нескольких столбцов или всего датафрейма. Вы также узнаете, как пропустить значения na
или включить их в свой расчет.
Оглавление
Если вы хотите использовать пример dataframe для практики, загрузите приведенный ниже образец dataframe. Данные представляют собой зарплаты людей за период в четыре года:
import pandas as pd
df = pd.DataFrame.from_dict(
{
'Year': [2018, 2019, 2020, 2021],
'Carl': [1000, 2300, 1900
Это возвращает следующий фрейм данных:
Carl Jane Melissa
Year
2018 1000 1500 800.0
2019 2300 1700 2300.0
2020 1900 1300 NaN
2021 3400 800 2300.0
Вычислить среднее значение для одного столбца очень просто. Мы можем просто вызвать метод .mean()
для отдельного столбца, и он вернет среднее значение этого столбца.
Например, давайте вычислим среднюю зарплату Карла за все годы:
>>> carl = df['Carl'].mean()
>>> print(carl)
2150.0
Мы можем видеть, что средняя зарплата Карла за четыре года составила 2150
.
Теперь предположим, что вы хотите вычислить среднее значение для строки dataframe. Мы можем сделать это, просто изменив параметр axis=
.
Допустим, мы хотим получить среднюю зарплату всех людей за 2018 год. Мы можем получить данные за 2018 год с помощью метода .loc
(о котором вы можете узнать больше в моем руководстве по ссылке).
>>> year_2018 = df.loc[2018,:].mean()
>>> print(year_2018)
1100
Теперь, в качестве альтернативы, вы можете вычислить среднее значение для каждой строки. Вы можете сделать это, не указывая выбор строки и изменив параметр axis=
.
Попробуем это на практике:
row_averages = df.mean(axis=1)
print(row_averages)
Это возвращает следующую серию:
Year
2018 1100.000000
2019 2100.000000
2020 1600.000000
2021 2166.666667
dtype: float64
Если вы хотите вычислить среднее значение нескольких столбцов, вы можете просто применить метод .mean()
к выбранным столбцам.
В приведенном ниже примере мы возвращаем средние зарплаты Карла и Джейн. Обратите внимание, что для правильного выбора данных необходимо использовать двойные квадратные скобки:
averages = df[['Carl', 'Jane']].mean()
print(averages)
Это возвращает следующий результат:
Carl 2150.0
Jane 1325.0
dtype: float64
Наконец, если вы хотите получить среднее значение для каждого столбца в dataframe Pandas, вы можете просто применить метод .mean()
ко всему dataframe.
Попробуем это сделать, написав следующий код:
>>> entire_dataframe = df.mean()
>>> print(entire_dataframe)
Carl 2150.0
Jane 1325.0
Melissa 1800.0
dtype: float64
Теперь вы можете вычислить среднее значение для всего dataframe.
Одно важное замечание: по умолчанию пропущенные значения исключаются из расчёта среднего. Таким образом, пропущенное значение обрабатывается как отсутствующее, а не как ноль.
Если вы хотите вычислить среднее значение с учётом пропущенных данных, вы можете сначала присвоить им значения с помощью метода Pandas .fillna()
. Ознакомьтесь с моим руководством по этой ссылке, чтобы узнать больше:
Давайте вычислим среднее значение, включая и исключая пропущенное значение в столбце Melissa:
>>> print(df['Melissa'].mean())
>>> print(df['Melissa'].fillna(0).mean())
1800.0
1350.0
Наконец, давайте воспользуемся методом Pandas .describe()
, чтобы вычислить среднее значение (а также некоторые другие полезные статистики). Чтобы узнать больше о методе Pandas .describe()
, ознакомьтесь с моим руководством по этой ссылке.
Давайте посмотрим, как мы можем получить среднее значение и другие полезные статистики:
>>> print(df.describe())
Carl Jane Melissa
count 4.000000 4.000000 3.000000
mean 2150.000000 1325.000000 1800.000000
std 994.987437 386.221008 866.025404
min 1000.000000 800.000000 800.000000
25% 1675.000000 1175.000000 1550.000000
50% 2100.000000 1400.000000 2300.000000
75% 2575.000000 1550.000000 2300.000000
max 3400.000000 1700.000000 2300.000000
Если вы хотите получить только среднее значение, вы можете просто использовать акцессор .loc
для доступа к данным:
>>> print(df.describe().loc['mean'])
Carl 2150.0
Jane 1325.0
Melissa 1800.0
Name: mean, dtype: float64
В этой статье вы узнали, как вычислить среднее значение в Pandas с помощью метода .mean()
. Вы научились вычислять среднее по столбцу, по строке, по нескольким столбцам и по всему dataframe. Кроме того, вы узнали, как рассчитать среднее значение с учетом пропущенных значений.
Чтобы узнать больше о методе .mean()
в Pandas, ознакомьтесь с официальной документацией по этой ссылке.