Объекты pandas
оснащены набором общих математических и
статистических методов. Большинство из них попадают в категорию
сводной статистики. В отличие от соответствующих методов массивов
NumPy методы объектов pandas
имеют встроенную обработку пропущенных
значений. Рассмотрим небольшой объект DataFrame
:
In [189]: df = pd.DataFrame([[1.4, np.nan], [7.1, -4.5],
...: [np.nan, np.nan], [0.75, -1.3]],
...: index=['a', 'b', 'c', 'd'],
...: columns=['one', 'two'])
In [190]: df
Out[190]:
one two
a 1.40 NaN
b 7.10 -4.5
c NaN NaN
d 0.75 -1.3
Вызов метода sum
возвращает суммы значений по столбцам:
In [191]: df.sum()
Out[191]:
one 9.25
two -5.80
dtype: float64
Чтобы получить суммы значений по строкам нужно передать параметр
axis='columns'
или axis=1
:
In [192]: df.sum(axis='columns')
Out[192]:
a 1.40
b 2.60
c 0.00
d -0.55
dtype: float64
Значения NA исключаются, если только весь срез (в данном случае строка
или столбец) не равен NA. Это поведение можно изменить с помощью
параметра skipna
:
In [193]: df.mean(axis='columns', skipna=False)
Out[193]:
a NaN
b 1.300
c NaN
d -0.275
dtype: float64
Некоторые методы, такие как idxmin
и idxmax
, возвращают косвенную
статистику, такую как значение индекса, где достигаются минимальные
или максимальные значения:
In [194]: df.idxmax()
Out[194]:
one b
two d
dtype: object
Есть методы являются аккумулирующими:
In [195]: df.cumsum()
Out[195]:
one two
a 1.40 NaN
b 8.50 -4.5
c NaN NaN
d 9.25 -5.8
Метод describe
возвращает множественную суммарную статистику:
In [196]: df.describe()
Out[196]:
one two
count 3.000000 2.000000
mean 3.083333 -2.900000
std 3.493685 2.262742
min 0.750000 -4.500000
25% 1.075000 -3.700000
50% 1.400000 -2.900000
75% 4.250000 -2.100000
max 7.100000 -1.300000
На нечисловых данных метод describe
возвращает следующую информацию:
In [197]: obj = pd.Series(['a', 'a', 'b', 'c'] * 4)
In [198]: obj.describe()
Out[198]:
count 16
unique 3
top a
freq 8
dtype: object
В таблице pandas:statistics:tbl:1 представлен полный список методов сводной статистики и связанных с этим методов:
Таблица 6. Описательная и сводная статистика
Метод | Описание |
count | Количество нечисловых значений |
describe | Вычисляет сводную статистику для ряда или для каждого столбца объекта DataFrame |
min , max | Вычисляет минимальное и максимальное значение |
argmin , argmax | Возвращают индекс (целое число), где расположено минимальное или максимальное значение |
idxmin , idxmax | Возвращают метку индекса, где расположено минимальное или максимальное значение |
quantile | Вычисляет квантиль выборки от 0 до 1 |
sum | Сумма значений |
mean | Среднее значение |
median | Медиана (50-процентная квантиль) значений |
mad | Среднее абсолютное отклонение от среднего значения |
prod | Произведение значений |
var | Дисперсия множества выборки значений |
std | Стандартное отклонение выборки значений |
skew | Асимметрия (третий момент) выборки значений |
kurt | Эксцесс (четвертый момент) выборки значений |
cumsum | Накопленная сумма значений |
cummin , cummax | Совокупный минимум и максимум |
cumprod | Накопленное произведение значений |
diff | Вычисляет первую арифметическую разность (полезно для временных рядов) |
pct_change | Вычисляет процентные изменения |