Метод kurt
Метод kurt применяется к DataFrame
и возвращает эксцесс для каждого столбца.
Эксцесс характеризует остроту пика распределения
по сравнению с нормальным распределением.
Положительное значение указывает на более острый
пик, отрицательное - на более плоский.
По умолчанию метод вычисляет эксцесс по выборке
(используется формула с поправкой на смещение).
Параметр axis позволяет выбрать направление
вычислений (по столбцам или по строкам),
а параметр skipna управляет обработкой
пропущенных значений.
Синтаксис
df.kurt(axis=0, skipna=True, numeric_only=False)
Пример
Рассмотрим базовое использование метода для вычисления эксцесса столбцов:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50],
'c': [0, 0, 1, 0, 0]
})
res = df.kurt()
print(res)
Результат выполнения кода:
a -1.2
b -1.2
c -2.5
dtype: float64
Отрицательные значения эксцесса указывают на более плоское распределение по сравнению с нормальным.
Пример
Изменим направление вычислений с помощью параметра axis,
чтобы получить эксцесс для каждой строки:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50],
'c': [0, 0, 1, 0, 0]
})
res = df.kurt(axis=1)
print(res)
Результат выполнения кода:
0 -1.5
1 -1.5
2 -1.5
3 -1.5
4 -1.5
dtype: float64
Пример
Рассмотрим обработку пропущенных значений.
По умолчанию метод kurt пропускает NaN.
Изменим это поведение с помощью параметра skipna:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, 2, np.nan, 4, 5],
'b': [10, np.nan, 30, 40, 50]
})
res_skip = df.kurt(skipna=True)
res_no_skip = df.kurt(skipna=False)
print("With skipna=True:")
print(res_skip)
print("With skipna=False:")
print(res_no_skip)
Результат выполнения кода:
With skipna=True:
a -1.2
b -0.2
dtype: float64
With skipna=False:
a NaN
b NaN
dtype: float64
Пример
Используем параметр numeric_only
для работы только с числовыми столбцами.
Если в таблице есть нечисловые данные,
они будут проигнорированы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50],
'c': ['x', 'y', 'z', 'w', 'v']
})
res = df.kurt(numeric_only=True)
print(res)
Результат выполнения кода:
a -1.2
b -1.2
dtype: float64