Python Pandas и SQL | Руководство 2026 года по бесшовному анализу данных

Python Pandas и SQL

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

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

Зачем объединять Python Pandas и SQL?

Pandas — это библиотека Python, созданная для обработки и анализа данных. Она является основным инструментом для нарезки, анализа и преобразования табличных данных. SQL (Structured Query Language), с другой стороны, является золотым стандартом для запросов к реляционным базам данных — таким как MySQL, PostgreSQL, SQLite и многим другим.

Зачем объединять Python Pandas и SQL?

Вот почему сочетание этих двух факторов может кардинально изменить ситуацию:

Читаемость: SQL-запросы часто более понятны, чем эквивалентный код Pandas, особенно при сложной фильтрации, группировке и объединениях.
Эффективность: Большинство бизнес-данных находятся в базах данных SQL. Передача их напрямую в Pandas означает меньше трения и меньшее количество изолированных хранилищ данных.
Гибкость: Вы можете использовать SQL для сложных запросов и Pandas для расширенной аналитики, визуализации и машинного обучения или.
Производительность: Специалисты по работе с данными и аналитики могут придерживаться любимого синтаксиса, будь то SQL или Python, без переключения контекста.

Мост: интеграция pandasql и собственного Pandas SQL

pandasql позволяет выполнять SQL-запросы непосредственно к объектам Pandas DataFrame, устраняя необходимость экспорта данных , создания отдельной базы данных или использования дополнительных API; пользователям достаточно просто написать SQL-запросы, получить результирующий DataFrame и продолжить работу без перерывов.

Установка пандаскабл

питон

pip install pandasql

Теперь вы готовы профессионально сочетать SQL и Pandas.

Начало работы: базовое использование

Давайте рассмотрим простой пример. Предположим, у вас есть DataFrame:

питон

import pandas as pd
import pandasql as psql

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)

query = "SELECT * FROM df"
result = psql.sqldf(query, locals())
print(result)

Это возвращает полный DataFrame, как и df.head() но с использованием синтаксиса SQL. Теперь вы можете фильтровать, группировать и объединять так же, как в базе данных.

Анализ реальных данных с помощью Pandas и SQL

Давайте поднимемся на уровень с практическим набором данных. Представьте, что вы анализируете набор данных о продажах автомобилей со столбцами типа brand, model, year, price, mileageИ многое другое.

Загрузка и исследование данных

питон

import pandas as pd
import pandasql as ps

car_data = pd.read_csv("cars_datasets.csv")
print(car_data.head())

print(car_data.info())
print(car_data.isnull().sum())

Вы увидите названия столбцов, типы данных и любые пропущенные значения — это крайне важно для качественного анализа данных.

Выполнение SQL-запросов на DataFrames

1

Топ-10 самых дорогих автомобилей

питон

def q(query):
    return ps.sqldf(query, {'car_data': car_data})

q("""
SELECT brand, model, year, price
FROM car_data
ORDER BY price DESC
LIMIT 10
""")
2

Средняя цена по бренду

питон

q("""
SELECT brand, ROUND(AVG(price), 2) AS avg_price
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
""")
3

Автомобили, выпущенные после 2015 года

питон

q("""
SELECT *
FROM car_data
WHERE year > 2015
ORDER BY year DESC
""")
4

Всего автомобилей по маркам

питон

q("""
SELECT brand, COUNT(*) as total_listed
FROM car_data
GROUP BY brand
ORDER BY total_listed DESC
LIMIT 5
""")
5

Группировка по состоянию

питон

q("""
SELECT condition, ROUND(AVG(price), 2) AS avg_price, COUNT(*) as listings
FROM car_data
GROUP BY condition
ORDER BY avg_price DESC
""")
6

Средний пробег и цена по марке

питон

q("""
SELECT brand,
ROUND(AVG(mileage), 2) AS avg_mileage,
ROUND(AVG(price), 2) AS avg_price,
COUNT(*) AS total_listings
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
LIMIT 10
""")
7

Цена за милю

питон

q("""
SELECT brand,
ROUND(AVG(price/mileage), 4) AS price_per_mile,
COUNT(*) AS total
FROM car_data
WHERE mileage > 0
GROUP BY brand
ORDER BY price_per_mile DESC
LIMIT 10
""")
8

Визуализация данных по штатам

Вы даже можете использовать виджеты и Plotly для создания интерактивных панелей мониторинга:

питон

import plotly.express as px
import ipywidgets as widgets

state_dropdown = widgets.Dropdown(
    options=car_data['state'].unique().tolist(),
    value=car_data['state'].unique()[0],
    description='Select State:',
    layout=widgets.Layout(width='50%')
)

def plot_avg_price_state(state_selected):
    query = f"""
    SELECT brand, AVG(price) AS avg_price
    FROM car_data
    WHERE state = '{state_selected}'
    GROUP BY brand
    ORDER BY avg_price DESC
    """
    result = q(query)
    fig = px.bar(result, x='brand', y='avg_price', color='brand',
                 title=f"Average Car Price in {state_selected}")
    fig.show()

widgets.interact(plot_avg_price_state, state_selected=state_dropdown)

Это делает ваш анализ интерактивным и визуально привлекательным — идеально подходит для информационных панелей или презентаций.

Помимо pandasql: собственные операции Pandas SQL

Хотя pandasql отлично подходит для быстрых запросов в стиле SQL, Pandas также поддерживает прямую интеграцию SQL для работы с реальными базами данных (например, SQLite, PostgreSQL, MySQL):

read_sql(): Считывает таблицу SQL или запрос в DataFrame.
to_sql(): записывает DataFrame в таблицу SQL.

Пример: чтение и запись в SQL

питон

import pandas as pd
import sqlite3

# Connect to SQLite database
conn = sqlite3.connect(":memory:")

# Create a table and insert data
conn.execute("CREATE TABLE Students (id INTEGER, Name TEXT, Marks REAL, Age INTEGER)")
conn.execute("INSERT INTO Students VALUES (1, 'Kiran', 80, 16), (2, 'Priya', 60, 14), (3, 'Naveen', 82, 15)")

# Read from SQL
df = pd.read_sql("SELECT * FROM Students", conn)
print(df)

# Write to SQL
df.to_sql("Students_Copy", conn, if_exists="replace", index=False)

Такой подход идеально подходит для ETL-конвейеров, отчетов и рабочих процессов обработки производственных данных.

Расширенные варианты использования: ETL, машинное обучение и панели мониторинга

Расширенные варианты использования SQL и Pandas

Объединение SQL и Pandas — это не просто создание запросов, это создание более интеллектуальных рабочих процессов:

ETL-конвейеры: Используйте SQL для извлечение данных и Pandas для трансформации и загрузки.
A / B-тестирование: SQL извлекает данные эксперимента; Python запускает статистические тесты и визуализирует результаты.
Машинное обучение: SQL извлекает функции; Pandas и scikit-learn занимаются проектированием и моделированием функций.
Дашборды: SQL обеспечивает работу бэкэнда данных; Python и Plotly или Dash создают интерактивные фронтэнды.

Pandasql против чистого Pandas: когда что использовать?

Характеристикаpandasql (SQL)Чистые панды
СинтаксисSQL (знакомый многим)Python (гибкий, мощный)
читабельностьВысокий для сложных запросовМожет быть многословным
ЭффективностиМедленнее на очень больших наборах данныхБыстрее, оптимизировано для Python
Объединения/ГруппировкиОчень интуитивно понятныйБольше кода, но больше возможностей
интеграциюОтлично подходит для быстрого анализа.Лучше всего подходит для производственных рабочих процессов
Совет:
Для массивных наборов данных или производственного кода собственные Pandas или прямые соединения SQL быстрее и надежнее. Используйте pandasql для исследования, прототипирования или когда SQL просто легче читать.

Ограничения и лучшие практики

Производительность: pandasql может работать медленнее на больших DataFrames — рассмотрите возможность использования Pandas напрямую или SQLAlchemy для подъема тяжестей.
Функциональность: Некоторые расширенные функции Pandas недоступны в SQL, и наоборот.
Сложность: Для многошаговых преобразований цепочка методов Pandas может быть более понятной.
Масштабируемость. Для больших данных рассмотрите Polars, Dask или Spark DataFrames.

Заключение

Интегрированное использование Python Pandas и SQL представляет собой важную компетенцию для аналитиков данных. AI инженеры и специалисты по исследованиям. Эта методология согласует запросы к реляционной базе данных с Мощный DataFrame от Pandas операции, повышая как эффективность, так и ясность кода. Используя такие инструменты, как pandasql, наряду с собственной интеграцией SQL Pandas, команды могут выполнять исследовательский анализ данных (EDA), надежные рабочие процессы ETL и конвейеры машинного обучения в единой среде.

Статистика, которую следует запомнить:

Более 80% специалистов по обработке данных используют Pandas в своих ежедневных рабочих процессах.
SQL остается наиболее востребованным навыком в данные вакансии.
Сочетание Python Pandas и SQL может сократить время анализа до 50%.

Применение этого двойного подхода обеспечивает масштабируемые, поддерживаемые аналитические процессы и настраивает команды на долгосрочный успех.

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши комментарии.

Присоединяйтесь к команде Aimojo Племя!

Присоединяйтесь к более чем 76,000 XNUMX участникам, чтобы получать инсайдерские советы каждую неделю! 
???? БОНУС: Получите наши 200 долларов “AI «Мастерский набор инструментов» БЕСПЛАТНО при регистрации!

Топ AI Инструменты
ДОСТУП

AI Простое обеспечение соответствия требованиям ADA и EAA. Автоматизированная поддержка в устранении нарушений стандартов WCAG и ведении судебных разбирательств для любого бизнеса.

SpeakON

Превратите каждую высказанную мысль в отполированный, готовый к отправке текст мгновенно. Первый в мире AI коммуникационное оборудование для iPhone

Кинк ИИ

Ваши фантазии, ваши правила: познакомьтесь с Kink AI. Откройте для себя ролевые игры и фантазии в стиле БДСМ. Общайтесь с Kink AI.

 

Айфетчли

Открытый исходный код AI Агент, который возвращает автоматизацию бизнес-процессов на ваш компьютер. Первое в своем роде событие в регионе AI Рабочее пространство для исследований, документов и запланированных рабочих процессов.

Булин ИИ

Превратите любую фотографию в вирусное фристайл-выступление Bulin 47 за считанные секунды. AI Создан видеогенератор для одной культовой уличной сцены.