Описательная и сводная статистика

Объекты 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 Вычисляет процентные изменения