Введение в базы данных

Эффективный импорт данных с pandas

Amany Mahfouz

Instructor

Реляционные базы данных

  • Данные о сущностях организованы в таблицы
  • Каждая строка (запись) — это экземпляр сущности
  • Каждый столбец содержит информацию об атрибуте
  • Таблицы могут быть связаны друг с другом через уникальные ключи
  • Поддержка больших объёмов данных, множества пользователей и контроль качества данных
  • Для каждого столбца задаётся тип данных
  • SQL (Structured Query Language) используется для работы с базами данных
Эффективный импорт данных с pandas

Распространённые реляционные базы данных

Логотип Microsoft SQL Server

Логотип Oracle

  • Базы данных SQLite — это файлы на компьютере

Логотип PostgreSQL

Логотип SQLite

Эффективный импорт данных с pandas

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

  • Процесс состоит из двух шагов:
    1. Установите соединение с базой данных
    2. Выполните запрос к базе данных

Иллюстрация базы данных

Эффективный импорт данных с pandas

Создание движка базы данных

Логотип SQLAlchemy

  • Функция create_engine() из sqlalchemy создаёт движок для управления подключениями к базе данных
    • Принимает строку с URL базы данных
    • Формат URL для SQLite: sqlite:///filename.db
Эффективный импорт данных с pandas

Запросы к базам данных

  • pd.read_sql(query, engine) загружает данные из базы данных
  • Аргументы
    • query: строка с SQL-запросом или именем таблицы
    • engine: объект подключения (движок базы данных)
Эффективный импорт данных с pandas

Повторение SQL: SELECT

  • Используется для получения данных из базы данных
  • Базовый синтаксис:
    SELECT [column_names] FROM [table_name];
    
  • Чтобы получить все данные из таблицы:
    SELECT * FROM [table_name];
    
  • Стиль кода: ключевые слова пишутся ЗАГЛАВНЫМИ БУКВАМИ, оператор завершается точкой с запятой (;)
Эффективный импорт данных с pandas

Получение данных из базы данных

# Load pandas and sqlalchemy's create_engine
import pandas as pd
from sqlalchemy import create_engine

# Create database engine to manage connections engine = create_engine("sqlite:///data.db")
# Load entire weather table by table name weather = pd.read_sql("weather", engine)
Эффективный импорт данных с pandas
# Create database engine to manage connections
engine = create_engine("sqlite:///data.db")

# Load entire weather table with SQL weather = pd.read_sql("SELECT * FROM weather", engine)
print(weather.head())
       station                         name  latitude  ...   prcp  snow  tavg tmax  tmin
0  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         52    42
1  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    39
2  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    42
3  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         51    40
4  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.75   0.0         61    50

[5 rows x 13 columns]
Эффективный импорт данных с pandas

Давайте потренируемся!

Эффективный импорт данных с pandas

Preparing Video For Download...