/
Вопросы и ответы
/
Аналитика данных
/

Как посчитать среднее по столбцу pandas

Как посчитать среднее по столбцу pandas

4 года назад

Arthur Cheremisin

Ответы

1

Для того чтобы посчитать среднее значение по столбцу в датафрейме pandas, можно воспользоваться методом mean(). Для этого необходимо сначала выбрать нужный столбец (или несколько столбцов) и затем вызвать метод mean() на выбранном столбце.

Пример:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import pandas as pd

# создаем датафрейм
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
})

# считаем среднее значение по столбцу 'A'
mean_A = df['A'].mean()
print(mean_A)

# считаем среднее значение по столбцу 'B'
mean_B = df['B'].mean()
print(mean_B)

# считаем среднее значение по столбцу 'C'
mean_C = df['C'].mean()
print(mean_C)

Этот код выведет средние значения по столбцам 'A', 'B' и 'C' соответственно

2 года назад

Maksim Litvinov

0

Среднее значение столбца в pandas возвращает метод mean():

1
2
3
4
import pandas as pd

df = pd.DataFrame({"city": ["Москва", "Казань", "Москва"], "sales": [100, 250, None]})
print(df["sales"].mean())  # => 175.0

Пропуски NaN по умолчанию не учитываются: среднее посчитано по двум значениям. Чтобы учесть пропуски как ошибку, передайте skipna=False — тогда результат будет NaN.

Среднее по всем числовым столбцам

1
2
3
4
df = pd.DataFrame({"a": [1, 2, 3], "b": [10, 20, 30], "name": ["x", "y", "z"]})
print(df.mean(numeric_only=True))
# a     2.0
# b    20.0

numeric_only=True пропускает текстовые столбцы — без него новые версии pandas выдадут ошибку.

Среднее по группам

Средние продажи по городам:

1
2
3
4
5
df = pd.DataFrame({"city": ["Москва", "Казань", "Москва"], "sales": [100, 250, 300]})
print(df.groupby("city")["sales"].mean())
# city
# Казань    250.0
# Москва    200.0

Среднее по строкам

1
2
3
df = pd.DataFrame({"math": [5, 4], "physics": [3, 5]})
df["avg"] = df.mean(axis=1)
print(df["avg"].tolist())  # => [4.0, 4.5]

Другие показатели

1
2
3
s = pd.Series([1, 2, 2, 100])
print(s.median())    # => 2.0 — медиана, не боится выбросов
print(s.describe())  # количество, среднее, отклонение, минимум, квартили, максимум

Если в данных есть выбросы, как 100 в примере, медиана точнее описывает типичное значение, чем среднее (26.25).

Если mean() выдаёт ошибку

TypeError: Could not convert ... to numeric — в столбце строки. Переведите его в числа:

1
2
3
df = pd.DataFrame({"price": ["100", "200", "abc"]})
df["price"] = pd.to_numeric(df["price"], errors="coerce")  # "abc" станет NaN
print(df["price"].mean())  # => 150.0

Анализ данных в pandas разбирают в курсе «Python для анализа данных».

7 часов назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845