<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация

Python Pandas — что это и как использовать

Павел Королев
Павел Королев
Технический писатель
20 марта 2025 г.
29
9 минут чтения
Средний рейтинг статьи: 5

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

В этой статье мы подробно разберем, как Pandas можно использовать в повседневной работе. Мы изучим базовые структуры данных — Series и DataFrame, освоим подключение к различным источникам данных, рассмотрим методы фильтрации, группировки и объединения таблиц, а также разберем основные способы визуализации данных и несколько практических примеров. Целевая аудитория статьи — пользователи, которые уже знакомы с основами Python и стремятся глубже понять функциональные возможности Pandas, чтобы упростить работу с массивами данных.

Установка необходимых библиотек и компонентов

Прежде чем приступить к изучению возможностей Pandas, убедитесь, что у вас установлены все необходимые библиотеки.

Выполним следующие команды в терминале:

  1. Обновим список пакетов:

sudo apt update
  1. Установим python3 и модуль для создания виртуальных окружений:

sudo apt install -y python3.12-venv python3-full
  1. Создадим виртуальное окружение:

python3 -m venv myenv
  1. Активируем виртуальное окружение myenv:

source myenv/bin/activate
  1. Установим ключевые библиотеки:

pip install pandas matplotlib sqlalchemy numpy
  1. Проверим, что не возникает проблем при импорте библиотек:

python3 -c 'import pandas, matplotlib, sqlalchemy, numpy; print("Все библиотеки установлены и работают!")'
cloud

Series

Series представляет собой линейную структуру данных, которая способна сохранять значения разных типов: числа, строки, временные отметки и даже сложные Python-объекты. Ее ключевая особенность — индекс, позволяющий обращаться к элементам как по порядковому номеру, так и по наименованию. 

В отличие от стандартных списков Python, Series обладает широким набором встроенных методов, которые позволяют выполнять статистические расчеты, сортировку и фильтрацию данных.

Ниже пример создания Series из списка:

import pandas as pd
my_series = pd.Series([10, 20, 30, 40], name='numbers')
print(my_series)

Image6

В этом фрагменте мы импортируем библиотеку pandas под псевдонимом pd. Переменная my_series содержит объект типа Series, в котором индексы по умолчанию задаются целые числа, начиная с 0. Мы также присвоили имя столбцу с помощью параметра name, чтобы в дальнейшем отличать этот набор данных от других.

DataFrame

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

Простейший способ создать DataFrame в Pandas — передать словарь списков или двумерный массив в качестве входных данных:

import pandas as pd
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['NY', 'LA', 'Chicago']
}

df = pd.DataFrame(data)
print(df)

Image5

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

Понимание того, что в Pandas ключевую роль играют объекты Series и DataFrame, позволяет более эффективно применять эту библиотеку.

Импорт данных

Ключевое преимущество Pandas при решении реальных задач — это способность легко загружать и сохранять данные в различных форматах. Наиболее востребованными являются CSV, Excel и JSON, но Pandas также поддерживает множество других источников, включая SQL-базы данных.

Импорт из CSV

CSV-файлы являются одним из самых популярных форматов хранения табличных данных. Для загрузки CSV в Pandas используется специальная функция.

import pandas as pd
df_csv = pd.read_csv('my_data.csv')

Достаточно указать путь к файлу — и Pandas это всё сделает за вас: проанализирует, где начинается и заканчивается поле, какой используется разделитель, и даже попытается угадать типы столбцов. При необходимости можно задать дополнительные параметры, например sep=';' или encoding='utf-8', если файл имеет особый формат.

Подключение к базам данных

Pandas интегрируется с различными СУБД, в том числе PostgreSQL, MySQL, SQLite и другими. Проще всего работать через библиотеку SQLAlchemy, позволяющую установить соединение и передать SQL-запрос.

Ниже приведен пример работы с базой данных SQLite. Этот код:

  • Создает файл базы данных (my_database.db), если он еще не существует.
  • Создает таблицу table_name с колонками id, name и age.
  • Добавляет в таблицу три записи (Alice, Bob, Charlie).
  • Загружает данные в DataFrame и выводит их в терминал.
from sqlalchemy import create_engine, text
import pandas as pd
engine = create_engine('sqlite:///my_database.db')
with engine.connect() as connection:
    connection.execute(text("""
        CREATE TABLE IF NOT EXISTS table_name (
            id INTEGER PRIMARY KEY,
            name TEXT,
            age INTEGER
        );
    """))
    
    connection.execute(text("""
        INSERT INTO table_name (name, age) VALUES
        ('Alice', 25),
        ('Bob', 30),
        ('Charlie', 22)
    """))
    connection.commit()
df_sql = pd.read_sql('SELECT * FROM table_name', engine)
print(df_sql)

Image3

Полученный DataFrame df_sql будет содержать все строки из table_name, что удобно для последующей обработки. С другими СУБД синтаксис будет похож — нужно лишь установить нужный драйвер и правильно указать строку подключения.

Таким образом, Pandas работает практически с любым источником данных, что делает её универсальным решением для аналитических задач.

Основные функции обработки данных

Когда данные уже загружены в DataFrame, можно приступать к их подготовке и анализу. В Pandas есть обширный набор методов и функций, которые позволяют выполнять фильтрацию, группировку, агрегирование, а также объединение таблиц. Рассмотрим ключевые из них.

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

Фильтрация — одна из важнейших операций в анализе данных. В Pandas фильтрации встречаются в любых руководствах:

import pandas as pd
df = pd.DataFrame({
    'Product': ['Apples', 'Oranges', 'Bananas', 'Apples'],
    'Price': [100, 200, 150, 120],
    'Quantity': [10, 5, 8, 15]
})
filtered = df[df['Product'] == 'Apples']
print(filtered)

Image2

Здесь df['Product'] == 'Apples' возвращает булев массив, указывающий, какие строки содержат Apples. В результате получаем подмножество исходного DataFrame. Также можно пользоваться методами .loc, .iloc или даже .query():

filtered2 = df.query("Price > 100")

Метод query() позволяет писать логические условия в виде небольших строк, упрощая чтение сложных запросов.

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

Несмотря на то, что для полноценной визуализации в Python часто используют Matplotlib, Seaborn или Plotly, в Pandas присутствуют встроенные возможности быстрого построения графиков. Каждый объект DataFrame или Series имеет метод .plot(), который умеет отображать:

  • Линейные графики (по умолчанию)
  • Столбиковые диаграммы
  • Гистограммы
  • Круговые диаграммы и многое другое

Пример:

import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({
    'Month': ['Jan', 'Feb', 'Mar', 'Apr'],
    'Sales': [250, 300, 200, 400]
})

df.plot(x='Month', y='Sales', kind='bar')
plt.show()

Image4

Параметры x='Month' и y='Sales' определяют, какие данные брать для оси X и оси Y, а kind='bar' указывает тип диаграммы. Такой подход идеален для быстрой оценки данных, не прибегая к дополнительным библиотекам. Но если нужна сложная визуализация, Pandas легко интегрируется и с Matplotlib, и с другими популярными средствами построения графиков.

Примеры использования: сквозной сценарий

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

import pandas as pd,matplotlib.pyplot as plt
data={'Product':['Apple','Banana','Orange','Apple','Banana','Orange','Apple','Banana'],'Category':['Fruits','Fruits','Fruits','Fruits','Fruits','Fruits','Fruits','Fruits'],'Price':[1.2,0.8,1.5,1.3,0,1.4,1.1,-0.5],'Quantity':[10,15,8,12,10,9,7,11]}
df_sales=pd.DataFrame(data)
df_sales=df_sales[df_sales['Price']>0]
df_sales['Total']=df_sales['Price']*df_sales['Quantity']
df_grouped=df_sales.groupby('Category')['Total'].sum()
df_grouped.plot(kind='bar',title='Revenue by Category')
plt.show()

Image1

На графике видно, что категория "Fruits" имеет суммарный доход около 72. Это означает, что после фильтрации и обработки данных остались только корректные значения, которые затем были сгруппированы по категории и визуализированы в виде столбчатой диаграммы.

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

Подготовили для вас выгодные тарифы<br>на облачные серверы

Заключение

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

Главные преимущества Pandas:

  1. Удобство: понятные структуры данных Series и DataFrame.
  2. Широкие возможности: фильтрация, объединение, группировка, агрегирование — всё в одной библиотеке.
  3. Интеграция: легко «дружит» с другими библиотеками Python, такими как NumPy, Matplotlib, SciPy, scikit-learn и т.д.
  4. Оптимизация: несмотря на простоту синтаксиса, под капотом используется NumPy, что обеспечивает высокую скорость выполнения операций.
  5. Активное сообщество: множество обучающих материалов, статей, форумов, где обсуждают вопросы и проблемы.

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

Таким образом, Pandas — действительно универсальный подход к анализу, актуальный как для научной среды, так и для бизнес-сфер. Попробуйте на практике Pandas, создайте свой первый DataFrame и ощутите, насколько библиотека упрощает жизнь, если речь идет о манипуляциях с данными.

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
20 марта 2025 г.
29
9 минут чтения
Средний рейтинг статьи: 5
Пока нет комментариев