Pandas в Python — это библиотека, которая изначально разрабатывалась для упрощения работы с временными рядами в финансовом секторе. Однако довольно быстро стало ясно, что ее возможности выходят далеко за пределы финансовой аналитики: со временем Pandas превратилась в универсальный инструмент, способный загружать, преобразовывать, анализировать и структурировать данные в табличном формате. Гибкость, интуитивность и встроенные инструменты позволяют эффективно управлять большими массивами данных всего за несколько строк кода. Именно поэтому Python-разработчики и специалисты в сфере анализа информации так высоко ценят Pandas.
В этой статье мы подробно разберем, как Pandas можно использовать в повседневной работе. Мы изучим базовые структуры данных — Series и DataFrame, освоим подключение к различным источникам данных, рассмотрим методы фильтрации, группировки и объединения таблиц, а также разберем основные способы визуализации данных и несколько практических примеров. Целевая аудитория статьи — пользователи, которые уже знакомы с основами Python и стремятся глубже понять функциональные возможности Pandas, чтобы упростить работу с массивами данных.
Прежде чем приступить к изучению возможностей Pandas, убедитесь, что у вас установлены все необходимые библиотеки.
Выполним следующие команды в терминале:
Обновим список пакетов:
sudo apt update
Установим python3
и модуль для создания виртуальных окружений:
sudo apt install -y python3.12-venv python3-full
Создадим виртуальное окружение:
python3 -m venv myenv
Активируем виртуальное окружение myenv
:
source myenv/bin/activate
Установим ключевые библиотеки:
pip install pandas matplotlib sqlalchemy numpy
Проверим, что не возникает проблем при импорте библиотек:
python3 -c 'import pandas, matplotlib, sqlalchemy, numpy; print("Все библиотеки установлены и работают!")'
cloud
Series представляет собой линейную структуру данных, которая способна сохранять значения разных типов: числа, строки, временные отметки и даже сложные Python-объекты. Ее ключевая особенность — индекс, позволяющий обращаться к элементам как по порядковому номеру, так и по наименованию.
В отличие от стандартных списков Python, Series обладает широким набором встроенных методов, которые позволяют выполнять статистические расчеты, сортировку и фильтрацию данных.
Ниже пример создания Series из списка:
import pandas as pd
my_series = pd.Series([10, 20, 30, 40], name='numbers')
print(my_series)
В этом фрагменте мы импортируем библиотеку pandas
под псевдонимом pd
. Переменная my_series
содержит объект типа Series
, в котором индексы по умолчанию задаются целые числа, начиная с 0. Мы также присвоили имя столбцу с помощью параметра name
, чтобы в дальнейшем отличать этот набор данных от других.
Если 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)
В результате у вас получится таблица, в которой строки и столбцы обладают подписанными индексами. DataFrame объединяет удобство работы со строковыми метками и вычислительную производительность. Благодаря интеграции с библиотекой NumPy, в основе DataFrame лежат оптимизированные структуры данных, что ускоряет выполнение операций фильтрации и агрегации.
Понимание того, что в Pandas ключевую роль играют объекты Series и DataFrame, позволяет более эффективно применять эту библиотеку.
Ключевое преимущество Pandas при решении реальных задач — это способность легко загружать и сохранять данные в различных форматах. Наиболее востребованными являются CSV, Excel и JSON, но Pandas также поддерживает множество других источников, включая SQL-базы данных.
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
.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)
Полученный 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)
Здесь df['Product'] == 'Apples'
возвращает булев массив, указывающий, какие строки содержат Apples
. В результате получаем подмножество исходного DataFrame. Также можно пользоваться методами .loc
, .iloc
или даже .query()
:
filtered2 = df.query("Price > 100")
Метод query()
позволяет писать логические условия в виде небольших строк, упрощая чтение сложных запросов.
Несмотря на то, что для полноценной визуализации в 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()
Параметры 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()
На графике видно, что категория "Fruits" имеет суммарный доход около 72. Это означает, что после фильтрации и обработки данных остались только корректные значения, которые затем были сгруппированы по категории и визуализированы в виде столбчатой диаграммы.
Такой короткий сценарий отражает основные шаги: импорт, фильтрацию, арифметические операции, группировку и визуализацию. В реальных задачах могут добавляться десятки операций, но принципы работы pandas.DataFrame
при этом остаются прежними.
Подготовили для вас выгодные тарифы<br>на облачные серверы
Итак, мы рассмотрели, что такое Pandas, почему Pandas — одна из наиболее популярных библиотек для анализа данных, и как она облегчает жизнь специалистам, обрабатывающим большой объем информации. Библиотека Pandas в Python предоставляет готовые инструменты для чтения и записи данных в разных форматах, гибкую фильтрацию и группировку, удобные методы слияния таблиц, а также базовую визуализацию.
Главные преимущества Pandas:
Специалисту по анализу данных, бизнес-аналитику или научному сотруднику, желающему выделять закономерности из больших массивов цифр, без Pandas уже сложно представить свою повседневную работу. Если вы только начинаете разбираться в аналитике на Python, стоит как можно раньше освоить Pandas и научиться применять их на реальных задачах. Как только вы поймете принципы работы с Pandas, у вас в руках окажется мощнейший инструмент, позволяющий быстро находить и обрабатывать нужную информацию, формируя в итоге понятные отчеты, графики и выводы.
Таким образом, Pandas — действительно универсальный подход к анализу, актуальный как для научной среды, так и для бизнес-сфер. Попробуйте на практике Pandas, создайте свой первый DataFrame и ощутите, насколько библиотека упрощает жизнь, если речь идет о манипуляциях с данными.