Pandas за 10 минут

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

Pandas за 10 минут
Краткое содержание

В этой статье мы подробно рассмотрим, что такое pandas, его основные возможности, основные структуры данных, а также примеры использования для решения реальных задач.

Что такое Pandas?

Pandas предоставляет высокоуровневые структуры данных и множество инструментов для манипулирования табличными данными. Библиотека облегчает выполнение следующих задач:

  • Чтение и запись данных из различных источников (CSV, Excel, SQL базы данных, JSON и др.).
  • Манипуляция данными: фильтрация, сортировка, агрегирование, группировка.
  • Обработка отсутствующих значений: заполнение, удаление или замена отсутствующих данных.
  • Слияние и объединение таблиц: объединение нескольких наборов данных для дальнейшего анализа.
  • Временной анализ: удобная работа с временными рядами и временными метками.

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

Pandas основывается на двух основных структурах данных:

1. Series

Series — это одномерный массив, похожий на список или массив NumPy, но с дополнительной возможностью использования меток (индексов) для элементов.
Пример создания Series:

import pandas as pd

# Создание Series с указанием индекса
s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s)

2. DataFrame

DataFrame представляет собой двумерную таблицу, аналогичную электронным таблицам или таблицам в базах данных, где каждая строка и столбец имеет свои метки. DataFrame позволяет выполнять сложные операции по фильтрации, группировке и трансформации данных.
Пример создания DataFrame:

import pandas as pd

# Создание DataFrame из словаря
data = {
    'Имя': ['Анна', 'Борис', 'Виктор'],
    'Возраст': [23, 35, 29],
    'Город': ['Москва', 'Санкт-Петербург', 'Новосибирск']
}
df = pd.DataFrame(data)
print(df)

Установка и Настройка

Для начала работы с pandas необходимо установить библиотеку. Это можно сделать с помощью менеджера пакетов pip:

pip install pandas

Если вы используете Anaconda, pandas уже установлен по умолчанию.

Чтение и Запись Данных

Одной из сильных сторон pandas является простота загрузки и сохранения данных. Некоторые популярные методы включают:

Чтение CSV:

df = pd.read_csv('data.csv')

Запись в CSV:

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

Чтение Excel:

df = pd.read_excel('data.xlsx', sheet_name='Лист1')

Запись в Excel:

df.to_excel('output.xlsx', sheet_name='Результаты', index=False)

Помимо этого, pandas поддерживает работу с базами данных, JSON-файлами и многими другими форматами.

Манипуляция и Очистка Данных

Фильтрация и Сортировка

Pandas позволяет быстро отбирать данные по заданным условиям. Например, чтобы отобрать строки, где значение в столбце «Возраст» больше 30:

filtered_df = df[df['Возраст'] > 30]

Для сортировки DataFrame по столбцу используйте метод sort_values:

sorted_df = df.sort_values(by='Возраст')

Обработка Отсутствующих Значений

Отсутствующие данные могут негативно влиять на анализ. Pandas предоставляет удобные методы для работы с ними:

Удаление пропусков:

df_clean = df.dropna()

Заполнение пропусков:

df_filled = df.fillna(0)

Преобразование Данных

Преобразование типов данных и применение функций к столбцам осуществляются с помощью методов astype, apply и map. Например, преобразование столбца «Возраст» в тип float:

df['Возраст'] = df['Возраст'].astype(float)

И применение функции ко всему столбцу:

df['Возраст'] = df['Возраст'].apply(lambda x: x + 1)

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

Для анализа данных по категориям используется метод groupby. Например, если у вас есть столбец «Отдел», и нужно вычислить среднее значение «Зарплаты» по каждому отделу:

grouped = df.groupby('Отдел')['Зарплата'].mean()
print(grouped)

Метод groupby позволяет применять различные агрегирующие функции, такие как sum(), mean(), count(), max(), min() и другие.

Слияние и Объединение Данных

Иногда данные хранятся в нескольких таблицах, и их нужно объединить. Для этого используются функции merge, concat и join.

Объединение с Merge

df1 = pd.DataFrame({
    'ID': [1, 2, 3],
    'Имя': ['Анна', 'Борис', 'Виктор']
})
df2 = pd.DataFrame({
    'ID': [1, 2, 4],
    'Зарплата': [50000, 60000, 70000]
})

merged_df = pd.merge(df1, df2, on='ID', how='inner')
print(merged_df)

Объединение с Concat

df_concat = pd.concat([df1, df2], axis=0, ignore_index=True)

Работа с Временными Рядами

Pandas обладает мощными инструментами для работы с временными рядами:

Преобразование столбца в формат даты:

df['Дата'] = pd.to_datetime(df['Дата'])

Установка столбца даты в качестве индекса:

df.set_index('Дата', inplace=True)

Ресемплирование данных по периодам:

monthly = df.resample('M').mean()

Эти возможности позволяют легко проводить анализ временных данных, находить тренды, сезонные колебания и другие важные аспекты.

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

Хотя основная задача pandas — манипуляция данными, библиотека также поддерживает базовую визуализацию через интеграцию с Matplotlib. Пример построения графика:

import matplotlib.pyplot as plt

# Построение линейного графика
df['Возраст'].plot(kind='line')
plt.title('Возраст сотрудников')
plt.xlabel('Номер записи')
plt.ylabel('Возраст')
plt.show()

Благодаря этим возможностям можно быстро визуализировать данные для предварительного анализа.

Советы и Лучшая Практика

  1. Чтение документации: Официальная документация pandas является отличным источником информации и примеров.
  2. Использование методов chaining: Многие операции можно объединять в цепочки для более компактного кода.
  3. Оптимизация работы: При работе с большими данными используйте методы оптимизации, такие как выбор определенных столбцов при чтении данных, использование категориальных типов данных и векторизацию операций.
  4. Регулярное обновление знаний: Pandas активно развивается, и новые возможности появляются достаточно часто, поэтому полезно следить за обновлениями библиотеки.

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

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

Nerd IT 🌀 ML, DS, ANN, GPT
Привет! Меня зовут Семён, я работаю в сфере ML и аналитики данных и пишу в блог nerdit.ru статьи о своем опыте и том, что может пригодиться начинающим в начале их пути изучения больших данных.

Подписаться на новости Nerd IT

Не пропустите последние выпуски. Зарегистрируйтесь сейчас, чтобы получить полный доступ к статьям.
jamie@example.com
Подписаться