- Как рассчитать сводную статистику для Pandas DataFrame
- Пример 1. Расчет сводной статистики для всех числовых переменных
- Пример 2. Расчет сводной статистики для всех строковых переменных
- Пример 3. Вычисление сводной статистики, сгруппированной по переменной
- Дополнительные ресурсы
- Среднее значение mean() в DataFrame Pandas
- Пример 2
- Пример 3: по строкам
- Как рассчитать среднее значение выбранных столбцов в Pandas
- Метод 1: вычислить среднее значение строки для всех столбцов
- Метод 2: вычислить среднее значение строки для определенных столбцов
- Дополнительные ресурсы
- Как рассчитать среднее значение столбцов в Pandas
- Пример 1. Найдите среднее значение одного столбца
- Пример 2. Найдите среднее значение нескольких столбцов
- Пример 3. Найдите среднее значение всех столбцов
- Как рассчитать условное среднее значение в Pandas (с примерами)
- Пример 1: Расчет условного среднего для категориальной переменной
- Пример 2. Вычисление условного среднего для числовой переменной
- Дополнительные ресурсы
Как рассчитать сводную статистику для Pandas DataFrame
Вы можете использовать следующие методы для расчета сводной статистики для переменных в pandas DataFrame:
Метод 1: вычислить сводную статистику для всех числовых переменных
Метод 2: вычислить сводную статистику для всех строковых переменных
Метод 3: вычислить сводную статистику, сгруппированную по переменной
df.groupby('group_column').mean() df.groupby('group_column'). median () df.groupby('group_column'). max () .
В следующих примерах показано, как использовать каждый метод на практике со следующими пандами DataFrame:
import pandas as pd import numpy as np #create DataFrame df = pd.DataFrame() #view DataFrame print(df) team points assists rebounds 0 A 18 5.0 11.0 1 A 22 NaN 8.0 2 A 19 7.0 10.0 3 A 14 9.0 6.0 4 B 14 12.0 6.0 5 B 11 9.0 5.0 6 B 20 9.0 9.0 7 B 28 4.0 NaN 8 B 30 5.0 6.0
Пример 1. Расчет сводной статистики для всех числовых переменных
В следующем коде показано, как рассчитать сводную статистику для каждой числовой переменной в DataFrame:
df.describe () points assists rebounds count 9.000000 8.000000 8.000000 mean 19.555556 7.500000 7.625000 std 6.366143 2.725541 2.199838 min 11.000000 4.000000 5.000000 25% 14.000000 5.000000 6.000000 50% 19.000000 8.000000 7.000000 75% 22.000000 9.000000 9.250000 max 30.000000 12.000000 11.000000
Мы можем видеть следующую сводную статистику для каждой из трех числовых переменных:
- count: количество ненулевых значений
- среднее : среднее значение
- std : стандартное отклонение
- мин: минимальное значение
- 25% : значение на 25-м процентиле.
- 50% : значение на 50-м процентиле (также медиана)
- 75% : значение на 75-м процентиле.
- макс : максимальное значение
Пример 2. Расчет сводной статистики для всех строковых переменных
В следующем коде показано, как рассчитать сводную статистику для каждой строковой переменной в DataFrame:
df.describe (include='object') team count 9 unique 2 top B freq 5
Мы можем увидеть следующую сводную статистику для одной строковой переменной в нашем DataFrame:
- count : количество ненулевых значений
- unique : Количество уникальных значений
- top: наиболее часто встречающееся значение
- freq : количество наиболее часто встречающихся значений
Пример 3. Вычисление сводной статистики, сгруппированной по переменной
В следующем коде показано, как вычислить среднее значение для всех числовых переменных, сгруппированных по переменной команды :
df.groupby('team').mean() points assists rebounds team A 18.25 7.0 8.75 B 20.60 7.8 6.50
В выходных данных отображается среднее значение переменных очков , передач и подборов , сгруппированных по переменной команды .
Обратите внимание, что мы можем использовать аналогичный синтаксис для вычисления другой сводной статистики, такой как медиана:
df.groupby('team'). median () points assists rebounds team A 18.5 7.0 9.0 B 20.0 9.0 6.0
В выходных данных отображается среднее значение переменных очков , передач и подборов , сгруппированных по переменной команды .
Примечание.Вы можете найти полную документацию для функции описания в pandas здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Среднее значение mean() в DataFrame Pandas
В этом примере мы рассчитаем среднее значение по столбцам. Мы узнаем средние оценки, полученные студентами по предметам.
import pandas as pd mydictionary = # create dataframe df_marks = pd.DataFrame(mydictionary) print('DataFrame\n----------') print(df_marks) # calculate mean mean = df_marks.mean() print('\nMean\n------') print(mean)
DataFrame ---------- names physics chemistry algebra 0 Somu 68 84 78 1 Kiku 74 56 88 2 Amol 77 73 82 3 Lini 78 69 87 Mean ------ physics 74.25 chemistry 70.50 algebra 83.75 dtype: float64
Функция mean() возвращает Pandas, это поведение функции mean() по умолчанию. Следовательно, в этом конкретном случае вам не нужно передавать какие-либо аргументы функции mean(). Или, если вы хотите явно указать функцию для вычисления по столбцам, передайте axis = 0, как показано ниже.
Пример 2
В этом примере мы создадим DataFrame с числами, присутствующими во всех столбцах, и вычислим среднее значение.
Из предыдущего примера мы видели, что функция mean() по умолчанию возвращает среднее значение, вычисленное среди столбцов.
import pandas as pd mydictionary = # create dataframe df_marks = pd.DataFrame(mydictionary) print('DataFrame\n----------') print(df_marks) # calculate mean of the whole DataFrame mean = df_marks.mean().mean() print('\nMean\n------') print(mean)
DataFrame ---------- names physics chemistry algebra 0 Somu 68 84 78 1 Kiku 74 56 88 2 Amol 77 73 82 3 Lini 78 69 87 Mean ------ 76.16666666666667
Пример 3: по строкам
В этом примере мы вычислим среднее значение всех столбцов по строкам или оси = 1. В этом конкретном примере среднее значение по строкам дает среднее значение или процент оценок, полученных каждым учеником.
import pandas as pd mydictionary = # create dataframe df_marks = pd.DataFrame(mydictionary) print('DataFrame\n----------') print(df_marks) # calculate mean along rows mean = df_marks.mean(axis=1) print('\nMean\n------') print(mean) # display names and average marks print('\nAverage marks or percentage for each student') print(pd.concat([df_marks['names'], mean], axis=1))
DataFrame ---------- names physics chemistry algebra 0 Somu 68 84 78 1 Kiku 74 56 88 2 Amol 77 73 82 3 Lini 78 69 87 Mean ------ 0 76.666667 1 72.666667 2 77.333333 3 78.000000 dtype: float64 Average marks or percentage for each student names 0 0 Somu 76.666667 1 Kiku 72.666667 2 Amol 77.333333 3 Lini 78.000000
В этом руководстве по Pandas мы узнали, как рассчитать среднее значение всего DataFrame, по столбцу (столбцам) и строкам.
Как рассчитать среднее значение выбранных столбцов в Pandas
Вы можете использовать следующие методы для вычисления средних значений строк для выбранных столбцов в кадре данных pandas:
Метод 1: вычислить среднее значение строки для всех столбцов
Метод 2: вычислить среднее значение строки для определенных столбцов
В следующих примерах показано, как использовать каждый метод на практике со следующими пандами DataFrame:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df points assists rebounds 0 14 5 11 1 19 7 8 2 9 7 10 3 21 9 6 4 25 12 6 5 29 9 5 6 20 9 9 7 11 4 12
Метод 1: вычислить среднее значение строки для всех столбцов
Следующий код показывает, как создать новый столбец в DataFrame, который отображает среднее значение строки для всех столбцов:
#define new column that shows the average row value for all columns df['average_all'] = df.mean (axis= 1 ) #view updated DataFrame df points assists rebounds average_all 0 14 5 11 10.000000 1 19 7 8 11.333333 2 9 7 10 8.666667 3 21 9 6 12.000000 4 25 12 6 14.333333 5 29 9 5 14.333333 6 20 9 9 12.666667 7 11 4 12 9.000000
Вот как интерпретировать вывод:
Среднее значение первой строки рассчитывается как: (14+5+11) / 3 = 10 .
Среднее значение второй строки рассчитывается как: (19+7+8) / 3 = 11,33 .
Метод 2: вычислить среднее значение строки для определенных столбцов
В следующем коде показано, как рассчитать среднее значение строки только для столбцов «очки» и «подборы»:
#define new column that shows average of row values for points and rebounds columns df['avg_points_rebounds'] = df[['points', 'rebounds']]. mean (axis= 1 ) #view updated DataFrame df points assists rebounds avg_points_rebounds 0 14 5 11 12.5 1 19 7 8 13.5 2 9 7 10 9.5 3 21 9 6 13.5 4 25 12 6 15.5 5 29 9 5 17.0 6 20 9 9 14.5 7 11 4 12 11.5
Вот как интерпретировать вывод:
Среднее значение «очков» и «подборов» в первой строке рассчитывается как: (14+11) / 2 = 12,5 .
Среднее значение «очков» и «подборов» во второй строке рассчитывается как: (19+8) / 2 = 13,5 .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:
Как рассчитать среднее значение столбцов в Pandas
Часто вам может быть интересно вычислить среднее значение одного или нескольких столбцов в кадре данных pandas. К счастью, вы можете легко сделать это в pandas, используя функцию mean() .
В этом руководстве показано несколько примеров использования этой функции.
Пример 1. Найдите среднее значение одного столбца
Предположим, у нас есть следующие Pandas DataFrame:
import pandas as pd import numpy as np #create DataFrame df = pd.DataFrame() #view DataFrame df player points assists rebounds 0 A 25 5 NaN 1 B 20 7 8.0 2 C 14 7 10.0 3 D 16 8 6.0 4 E 27 5 6.0 5 F 20 7 9.0 6 G 12 6 6.0 7 H 15 9 10.0 8 I 14 9 10.0 9 J 19 5 7.0
Мы можем найти среднее значение столбца под названием «точки», используя следующий синтаксис:
Функция mean() также будет исключать NA по умолчанию. Например, если мы найдем среднее значение столбца «отскоки», первое значение «NaN» будет просто исключено из расчета:
Если вы попытаетесь найти среднее значение столбца, который не является числовым, вы получите сообщение об ошибке:
df['player'].mean() TypeError: Could not convert ABCDEFGHIJ to numeric
Пример 2. Найдите среднее значение нескольких столбцов
Мы можем найти среднее значение нескольких столбцов, используя следующий синтаксис:
#find mean of points and rebounds columns df[['rebounds', 'points']].mean() rebounds 8.0 points 18.2 dtype: float64
Пример 3. Найдите среднее значение всех столбцов
Мы можем также найти среднее значение всех числовых столбцов, используя следующий синтаксис:
#find mean of all numeric columns in DataFrame df.mean () points 18.2 assists 6.8 rebounds 8.0 dtype: float64
Обратите внимание, что функция mean() просто пропустит столбцы, которые не являются числовыми.
Как рассчитать условное среднее значение в Pandas (с примерами)
Вы можете использовать следующий синтаксис для вычисления условного среднего значения в pandas:
df.loc[df['team'] == 'A', 'points'].mean()
Это вычисляет среднее значение столбца «точки» для каждой строки в DataFrame, где столбец «команда» равен «А».
В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame print(df) team points assists 0 A 99 33 1 A 90 28 2 A 93 31 3 B 86 39 4 B 88 34 5 B 82 30
Пример 1: Расчет условного среднего для категориальной переменной
В следующем коде показано, как вычислить среднее значение столбца «точки» только для строк в DataFrame, где столбец «команда» имеет значение «А».
#calculate mean of 'points' column for rows where team equals 'A' df.loc[df['team'] == 'A', 'points'].mean() 94.0
Среднее значение в столбце «Очки» для строк, где «команда» равно «А», равно 94 .
Мы можем вручную проверить это, рассчитав среднее значение очков только для строк, где «команда» равна «А»:
Пример 2. Вычисление условного среднего для числовой переменной
В следующем коде показано, как вычислить среднее значение столбца «помощь» только для строк в DataFrame, где столбец «точки» имеет значение больше или равное 90.
#calculate mean of 'assists' column for rows where 'points' >= 90 df.loc[df['points'] >= 90 , 'assists'].mean() 30.666666666666668
Среднее значение в столбце «ассисты» для строк, где «очки» больше или равны 90, составляет 30,66667 .
Мы можем вручную проверить это, рассчитав среднее значение очков только для строк, где «команда» равна «А»:
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas: