Перейти к содержимому

Pandas. Шпаргалка

Pandas — это мощная и гибкая библиотека для манипуляции и анализа данных в Python. Она предоставляет структуры данных и функции, необходимые для работы с структурированными данными. 

Pandas Шпаргалка 2023 - Краткое руководство

Основные концепции Pandas

Pandas - это мощная библиотека Python для анализа и обработки данных. Вот ключевые компоненты:

Основные структуры данных

1. Series - одномерный массив с метками
2. DataFrame - двумерная таблица данных (как электронная таблица Excel)

Основные операции

Создание структур данных

import pandas as pd
import numpy as np

# Создание Series
s = pd.Series([1, 3, 5, np.nan, 6, 8]) # np.nan - не число (not a number)

# Создание DataFrame
df = pd.DataFrame({
    'A': 1., # число с плавающей точкой (float)
    'B': pd.Timestamp('20230101'), # столбец с временной меткой 2023-01-01
    'C': pd.Series(1, index=list(range(4)),  # Series с одним значением 1 и индексами от 0 до 3
    'D': np.array([3] * 4), # массив из 4 элементов (значение 3) 
    'E': pd.Categorical(["test", "train", "test", "train"]), #  столбец с категориальными данными
    'F': 'foo'  # строковое значение 'foo' для всех строк
})

out[\(s\)]

out[\(df\)]

Чтение данных

# Из CSV
df = pd.read_csv('file.csv')

# Из Excel
df = pd.read_excel('file.xlsx')

# Из SQL
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
df = pd.read_sql('SELECT * FROM table', engine)

Запись данных

# В CSV
df.to_csv('output.csv', index=False)

# В Excel
df.to_excel('output.xlsx', index=False)

# В SQL
df.to_sql('table_name', conn, if_exists='replace', index=False)

Просмотр данных

df.head()  # первые 5 строк
df.tail(3) # последние 3 строки
df.shape   # размерность (строки, столбцы)
df.info()  # информация о типах данных
df.describe() # статистика по числовым колонкам

Работа с DataFrame

Выбор данных
# Выбор столбца
df['column_name']
df.column_name

# Выбор строк по индексу
df.loc[0]     # по метке
df.iloc[0]    # по позиции

# Выбор по условию
df[df['column'] > 0.5]

Фильтрация данных

# Фильтр по значению
df[df['quality'] == 6]

# Фильтр по нескольким условиям
df[(df['quality'] > 5) & (df['alcohol'] < 12)]

# Использование isin()
df[df['column'].isin(['val1', 'val2'])]

Обработка пропущенных значений

df.isna()       # проверка на NaN
df.dropna()     # удаление строк с NaN
df.fillna(0)    # замена NaN на 0
df.fillna(df.mean()) # замена на среднее

Группировка и агрегация

# Группировка
grouped = df.groupby('column')

# Агрегация
grouped.mean()
grouped.agg(['mean', 'min', 'max'])

# Сводная таблица
pd.crosstab(df['col1'], df['col2'])

Объединение данных

# Конкатенация
pd.concat([df1, df2])

# Слияние (как JOIN в SQL)
pd.merge(df1, df2, on='key')

Визуализация данных

Pandas интегрируется с Matplotlib для визуализации:

import matplotlib.pyplot as plt

# Линейный график
df.plot()

# Гистограмма
df['column'].plot.hist(bins=20)

# Диаграмма рассеяния
df.plot.scatter(x='col1', y='col2')

# Ящик с усами
df.plot.box()

# Сохранение графика
plt.savefig('plot.png')
plt.show()

Полезные методы

Применение функций
# Применение функции к столбцу
df['column'].apply(lambda x: x*2)

# Векторизованные операции
df['new_col'] = df['col1'] + df['col2']
Сортировка
df.sort_values('column')          # по возрастанию
df.sort_values('column', ascending=False) # по убыванию
Временные ряды
# Преобразование в datetime
df['date'] = pd.to_datetime(df['date'])

# Ресемплинг
df.resample('M').mean()  # по месяцам
Советы по оптимизации

1. Используйте векторные операции вместо циклов
2. Для больших данных используйте dtype с меньшим объемом памяти
3. Применяйте eval() и query() для сложных выражений
4. Используйте category тип для строковых данных с малым числом уникальных значений

df['category_column'] = df['category_column'].astype('category')

Это основные концепции Pandas, которые помогут вам эффективно работать с данными в Python. Библиотека предлагает гораздо больше возможностей, но этого набора хватит для решения большинства задач анализа данных.

Среда, 30 апреля 2025 Posted in Pandas, Разработчику на Python
Pandas. Шпаргалка