Python для Data Science: методы анализа данных Pandas и NumPy

Раздел: Data Science -> Pandas и NumPy

Основные функции анализа данных

Как получить сводную статистику по числовым столбцам?

Самый эффективный способ — метод describe() из Pandas. Он возвращает количество, среднее, стандартное отклонение, минимум, квартили и максимум. Пример:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50]})
print(df.describe())

Python для анализа данных (python для анализа данных)

         A     B
count  5.0   5.0
mean   3.0  30.0
std    1.58  15.81
min    1.0  10.0
25%    2.0  20.0
50%    3.0  30.0
75%    4.0  40.0
max    5.0  50.0

анализ больших данных python (анализ больших данных в python)

Типичная ошибка: вызов describe() для столбцов с пропущенными значениями. По умолчанию они не учитываются, но это может быть неочевидно. Решение: проверять количество не NaN через df.notnull().sum().

Как получить описательную статистику только для выбранных столбцов?

Можно применить describe() с параметром include или exclude. Например, для категориальных столбцов:

df.describe(include=['object'])

анализ данных python pdf (анализ данных pdf в python)

Для числовых — exclude=['object'].

Проблема: если столбцы не того типа, вызов вернет пустой DataFrame. Рекомендуется проверять типы через df.dtypes.

Как вычислить отдельные статистики без describe?

Pandas предоставляет методы mean(), std(), min(), max() для Series. Пример:

print(df['A'].mean())  # 3.0

Python анализ данных и машинное обучение (анализ данных и машинное обучение на python)

Ошибка: применение mean() к столбцу с текстом вызывает TypeError. Решение: предварительно выбирать только числовые столбцы.

Как посчитать частоту значений в категориальном столбце?

Метод value_counts() возвращает количество уникальных значений, отсортированное по убыванию. Пример:

df = pd.DataFrame({'city': ['Moscow', 'Moscow', 'SPB', 'Kazan']})
print(df['city'].value_counts())

анализ данных с использованием python (анализ данных с использованием python)

Moscow    2
SPB       1
Kazan     1

Python анализ текстовых данных (анализ текстовых данных в python)

Проблема: пропуски (NaN) не учитываются по умолчанию. Чтобы включить, используйте dropna=False.

Как получить долю каждого значения?

Параметр normalize=True возвращает относительные частоты:

print(df['city'].value_counts(normalize=True))

Python библиотеки numpy и pandas (библиотеки numpy и pandas в python)

Moscow    0.5
SPB       0.25
Kazan     0.25

библиотеки python для обработки данных (библиотеки python для обработки данных (pandas, numpy и др.))

Как сгруппировать данные и вычислить агрегаты?

groupby() с последующей агрегацией — мощный инструмент. Пример: средняя зарплата по городам.

df = pd.DataFrame({'city': ['M', 'M', 'K'], 'salary': [100, 200, 150]})
print(df.groupby('city')['salary'].mean())

математика и python для анализа данных (математика и python для анализа данных)

city
K    150.0
M    150.0

методы анализа данных python (методы анализа данных в python)

Ошибка: забыть указать столбец для агрегации — groupby вернет объект, а не результат. Всегда нужно вызывать метод агрегации.

Как применить несколько агрегатных функций?

agg() позволяет задать список функций:

print(df.groupby('city')['salary'].agg(['mean', 'std']))

Python для анализа данных обучение (обучение анализу данных на python)

Как создать сводную таблицу?

pivot_table() группирует по индексам и столбцам, заполняя значения. Пример: средняя цена товаров по категориям и регионам.

df = pd.DataFrame({'cat': ['A','A','B'], 'reg': ['X','Y','X'], 'price': [10,20,30]})
pt = df.pivot_table(index='cat', columns='reg', values='price', aggfunc='mean')
print(pt)

приложения анализа данных на python (приложения анализа данных на python)

reg     X     Y
cat           
A    10.0  20.0
B    30.0   NaN

работа с табличными данными python (работа с табличными данными в python)

Проблема: если комбинация индексов и столбцов отсутствует, появляется NaN. Заполнение через fill_value=0.

Как применить пользовательскую функцию к столбцу?

apply() применяет функцию к каждому элементу Series или к каждой строке/столбцу DataFrame. Пример: перевести зарплату в доллары.

def usd(rub):
    return rub / 90
df['salary_usd'] = df['salary'].apply(usd)

распределение данных python (распределение данных в python)

Как заменить значения на основе словаря?

map() работает с Series, заменяя значения по отображению:

city_code = {'M': 1, 'K': 2}
df['code'] = df['city'].map(city_code)

статистический анализ данных python (статистический анализ данных в python)

Как вычислить корреляцию между столбцами?

corr() возвращает матрицу парных корреляций Пирсона.

df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6], 'C': [7,8,9]})
print(df.corr())

Python функции анализа данных (функции анализа данных в python)

     A    B    C
A  1.0  1.0  1.0
B  1.0  1.0  1.0
C  1.0  1.0  1.0

работа с pandas python (работа с библиотекой pandas)

Ошибка: корреляция считается только для числовых столбцов. Столбцы с пропусками игнорируются, но результат может быть неполным. Использовать min_periods.

Как вычислить корреляцию Спирмена?

Параметр method='spearman':

print(df.corr(method='spearman'))
- анализ данных python pandas numpy (анализ данных с pandas и numpy в python)
- Python задачи для анализа (задачи для анализа данных на python)
- Python столбец (столбец в python)

Расширенные примеры использования функций анализа

Группировка с трансформацией

transform() возвращает объект той же длины, что и исходный, с применением агрегации. Например, добавить столбец со средним по группе:

Пример
df['avg_salary_city'] = df.groupby('city')['salary'].transform('mean')

Дискретизация непрерывных данных

cut() и qcut() разбивают числовые значения на интервалы. Пример: разбить возраст на группы.

Пример
ages = [20, 25, 30, 35, 40, 45, 50]
bins = [0, 30, 40, 100]
labels = ['young', 'middle', 'senior']
df['age_group'] = pd.cut(ages, bins=bins, labels=labels)
print(df['age_group'])
0    young
1    young
2    young
3    middle
4    middle
5    senior
6    senior

Оконные функции (rolling)

rolling() применяет скользящее окно. Например, скользящее среднее за 3 периода.

Пример
s = pd.Series([1,2,3,4,5])
print(s.rolling(3).mean())
0    NaN
1    NaN
2    2.0
3    3.0
4    4.0

Применение пользовательской агрегации с agg

agg() принимает словарь для разных столбцов.

Пример
df.groupby('city').agg({'salary': ['mean', 'sum'], 'age': 'max'})

Использование NumPy для быстрых вычислений

NumPy функции работают с массивами и могут быть быстрее. Пример: среднее по всем элементам.

Пример
import numpy as np
arr = np.array([[1,2],[3,4]])
print(np.mean(arr))  # 2.5

Комбинирование groupby с apply для сложной логики

Применение функции к каждой группе, возвращающей DataFrame.

Пример
def top2(group):
    return group.nlargest(2, 'salary')
df.groupby('city').apply(top2)

Создание матрицы корреляции с тепловой картой

Использование seaborn для визуализации.

Пример
import seaborn as sns
import matplotlib.pyplot as plt
corr = df.corr()
sns.heatmap(corr, annot=True)
plt.show()

Работа с пропущенными данными

fillna() и dropna() перед анализом.

Пример
df.fillna(df.median(), inplace=True)

Функции анализа данных в Python - comments

En
Python функции анализа данных (python)