Джейд Картер

Библиотеки Python Часть 2. Практическое применение


Скачать книгу

с момента входа прошло более 10 минут и покупка не совершена, генерируется уведомление.

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

1.3 Работа с базами данных: SQLAlchemy и интеграция с Pandas

      SQLAlchemy – это мощная библиотека для работы с базами данных в Python. Она предоставляет инструменты для удобного взаимодействия с реляционными базами данных через ORM (Object Relational Mapping) или с использованием чистого SQL.

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

      Установка и подключение

      Для начала работы установите библиотеку SQLAlchemy:

      ```bash

      pip install sqlalchemy

      ```

      Если вы используете SQLite, дополнительных действий не требуется. Для других баз данных, таких как PostgreSQL или MySQL, также потребуется установить драйверы, например:

      ```bash

      pip install psycopg2 # Для PostgreSQL

      pip install pymysql # Для MySQL

      ```

      Создайте подключение к базе данных с помощью SQLAlchemy. Например, для SQLite это будет выглядеть так:

      ```python

      from sqlalchemy import create_engine

      # Создаем подключение к базе данных SQLite

      engine = create_engine('sqlite:///example.db', echo=True)

      ```

      Здесь `echo=True` означает, что в консоль будут выводиться SQL-запросы, выполняемые через SQLAlchemy, что полезно для отладки.

      Создание таблиц и работа с ORM

      SQLAlchemy поддерживает два основных подхода: работа через ORM и использование SQL-запросов напрямую. Рассмотрим оба.

      Создадим таблицу для хранения информации о пользователях:

      ```python

      from sqlalchemy import Table, Column, Integer, String, MetaData

      # Создаем метаданные

      metadata = MetaData()

      # Определяем таблицу

      users = Table(

      'users', metadata,

      Column('id', Integer, primary_key=True),

      Column('name', String),

      Column('age', Integer),

      Column('email', String)

      )

      # Создаем таблицу в базе данных

      metadata.create_all(engine)

      ```

      Теперь таблица `users` создана в базе данных.

      Для добавления данных используем объект подключения:

      ```python

      from sqlalchemy import insert

      # Подключаемся к базе данных

      conn = engine.connect()

      # Добавляем данные

      insert_query = insert(users).values([

      {'name': 'Alice', 'age': 25, 'email': '[email protected]'},

      {'name': 'Bob', 'age': 30, 'email': '[email protected]'},

      {'name': 'Charlie', 'age': 35, 'email': '[email protected]'}

      ])

      conn.execute(insert_query)

      print("Данные добавлены в таблицу.")

      ```

      Чтение данных и интеграция с Pandas

      Чтобы выгрузить данные из базы данных в Pandas, SQLAlchemy предоставляет удобный метод. Используем Pandas для выполнения SQL-запроса:

      ```python

      import pandas as pd

      # Чтение данных из таблицы users

      query = "SELECT * FROM users"

      df = pd.read_sql(query, engine)

      print(df)

      ```

      Вывод будет выглядеть так:

      ```

      id name age email

      0 1 Alice 25 [email protected]

      1 2 Bob 30 [email protected]

      2 3 Charlie 35 [email protected]

      ```

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

      Обработка