Многие функции в pandas требуют, чтобы вы указали ось, вдоль которой применяется определенный расчет.
Обычно применяется следующее эмпирическое правило:
- axis=0 : применить вычисление «по столбцам»
- axis=1 : применить вычисление «построчно»
В следующих примерах показано, как использовать аргумент оси в различных сценариях со следующими пандами DataFrame:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
'points': [25, 12, 15, 14, 19, 23, 25, 29],
'assists': [5, 7, 7, 9, 12, 9, 9, 4],
'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})
#view DataFrame
df
team points assists rebounds
0 A 25 5 11
1 A 12 7 8
2 B 15 7 10
3 B 14 9 6
4 B 19 12 6
5 B 23 9 5
6 C 25 9 9
7 C 29 4 12
Пример 1. Найдите среднее значение по разным осям
Мы можем использовать ось = 0 , чтобы найти среднее значение каждого столбца в DataFrame:
#find mean of each column
df.mean (axis= 0 )
points 20.250
assists 7.750
rebounds 8.375
dtype: float64
Вывод показывает среднее значение каждого числового столбца в DataFrame.
Обратите внимание, что pandas автоматически избегает вычисления среднего значения столбца «команда», потому что это столбец символов.
Мы также можем использовать ось = 1 , чтобы найти среднее значение каждой строки в DataFrame:
#find mean of each row
df.mean (axis= 1 )
0 13.666667
1 9.000000
2 10.666667
3 9.666667
4 12.333333
5 12.333333
6 14.333333
7 15.000000
dtype: float64
Из вывода мы видим:
- Среднее значение в первой строке равно 13,667 .
- Среднее значение во второй строке равно 9.000 .
- Среднее значение в третьей строке равно 10,667 .
И так далее.
Пример 2. Найдите сумму по разным осям
Мы можем использовать ось = 0 , чтобы найти сумму определенных столбцов в DataFrame:
#find sum of 'points' and 'assists' columns
df[['points', 'assists']]. sum (axis= 0 )
points 162
assists 62
dtype: int64
Мы также можем использовать ось = 1 , чтобы найти сумму каждой строки в DataFrame:
#find sum of each row
df.sum (axis= 1 )
0 41
1 27
2 32
3 29
4 37
5 37
6 43
7 45
dtype: int64
Пример 3. Найдите максимум по разным осям
Мы можем использовать ось = 0 , чтобы найти максимальное значение определенных столбцов в DataFrame:
#find max of 'points', 'assists', and 'rebounds' columns
df[['points', 'assists', 'rebounds']]. max (axis= 0 )
points 29
assists 12
rebounds 12
dtype: int64
Мы также можем использовать ось = 1 , чтобы найти максимальное значение каждой строки в DataFrame:
#find max of each row
df.max (axis= 1 )
0 25
1 12
2 15
3 14
4 19
5 23
6 25
7 29
dtype: int64
Из вывода мы видим:
- Максимальное значение в первой строке равно 25 .
- Максимальное значение во второй строке равно 12 .
- Максимальное значение в третьей строке равно 15 .
И так далее.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Как рассчитать среднее значение столбцов в Pandas
Как рассчитать сумму столбцов в Pandas
Как найти максимальное значение столбцов в Pandas