Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Установка необходимых библиотек и компонентов
Прежде чем приступить к изучению возможностей Pandas, убедитесь, что у вас установлены все необходимые библиотеки.
Выполним следующие команды в терминале:
- Установим
python3и модуль для создания виртуальных окружений:
Установим python3 и модуль для создания виртуальных окружений:
sudo apt install -y python3.12-venv python3-full- Создадим виртуальное окружение:
Создадим виртуальное окружение:
- Активируем виртуальное окружение
myenv:
Активируем виртуальное окружение myenv:
source myenv/bin/activate- Установим ключевые библиотеки:
Установим ключевые библиотеки:
pip install pandas matplotlib sqlalchemy numpy- Проверим, что не возникает проблем при импорте библиотек:
Проверим, что не возникает проблем при импорте библиотек:
python3 -c 'import pandas, matplotlib, sqlalchemy, numpy; print("Все библиотеки установлены и работают!")'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. - Добавляет в таблицу три записи (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)Полученный 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() позволяет писать логические условия в виде небольших строк, упрощая чтение сложных запросов.
Визуализация данных с 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()Параметры 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 при этом остаются прежними.
Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.