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

Описательная статистика используется для обобщения основных характеристик. Pandas предоставляет богатый набор статистических функций для быстрого получения общего распределения данных.


Базовые статистические функции

Пример

import pandas as pd
import numpy as np

# Создание тестовых данных
df = pd.DataFrame({
    "Возраст": [25, 30, 28, 35, 22, 40, 38, 45, 29, 31],
    "Зарплата": [12000, 15000, 11000, 18000, 9000, 20000, 17000, 22000, 12500, 14000],
    "Производительность": [85, 92, 78, 88, 65, 95, 82, 90, 75, 89]
})

print(=== Data ===")
print(f"Размер данных: {df.shape}")
print(f"\nБазовая статистика:")
print(df.describe())

Основные статистические показатели

Функция Описание Пример
count() Количество непустых значений df["年龄"].count()
sum() Sum df["薪资"].sum()
mean() Среднее df["年龄"].mean()
median() Медиана df["年龄"].median()
std() Стандартное отклонение df["绩效"].std()
var() Вариантность df["绩效"].var()
min() / max() Минимум/Максимум df["年龄"].min()
quantile() Квантиль df["薪资"].quantile(0.25)

Вычисление квантилей

Пример

import pandas as pd
import numpy as np

s = pd.Series(range(1, 101))  # от 1 до 100

print("Различные квантили:")
print(f"0% (мин): {s.quantile(0)}")
print(f"25%: {s.quantile(0.25)}")
print(f"50% (медиана): {s.quantile(0.50)}")
print(f"75%: {s.quantile(0.75)}")
print(f"100% (макс.): {s.quantile(1)}")
print()

# Вычислить несколько квантилей одновременно
print("Пакетные квантили:")
print(s.quantile([0.1, 0.2, 0.5, 0.8, 0.9]))

describe Сводка

describe()Предоставляет всестороннюю статистическую сводку по числовым столбцам в наборе данных.

Пример

import pandas as pd

df = pd.DataFrame({
    "Возраст": [25, 30, 28, 35],
    "Зарплата": [12000, 15000, 11000, 18000],
    "Город": ["Пекин", "Шанхай", "Гуанчжоу", "Шэньчжэнь"]
})

print("Статистика по числовым столбцам:")
print(df.describe())
print()

print("Включить все столбцы:")
print(df.describe(include="all"))

Коэффициент корреляции и ковариация

Пример

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "Возраст": [25, 30, 28, 35, 22],
    "Зарплата": [12000, 15000, 11000, 18000, 9000],
    "Производительность": [85, 92, 78, 88, 65]
})

print("Матрица коэффициентов корреляции:")
print(df.corr())
print()

# Корреляция с конкретным столбцом
print("Корреляция с зарплатой:")
print(df.corr()["Salary"])

Коэффициент корреляции принимает значения от -1 до 1. Чем ближе к 1, тем сильнее положительная корреляция; чем ближе к -1, тем сильнее отрицательная корреляция; близость к 0 указывает на отсутствие корреляции.


Углублённая статистика

Пример

import pandas as pd
import numpy as np

s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# Асимметрия (измеряет асимметрию распределения)
print(f"Асимметрия: {s.skew()}")

# Эксцесс (измеряет островершинность распределения)
print(f"Эксцесс: {s.kurtosis()}")
print()

# Кумулятивная статистика
s = pd.Series([1, 2, 3, 4, 5])
print("Кумулятивная сумма:")
print(s.cumsum())
print()

print("Кумулятивный максимум:")
print(s.cummax())
Другие расширения