数据库简介

使用 pandas 高效导入数据

Amany Mahfouz

Instructor

关系型数据库

  • 实体数据按表组织
  • 每一行/记录是一个实体实例
  • 每一列包含某个属性的信息
  • 表可通过唯一键相互关联
  • 支持更多数据、并发用户和数据质量控制
  • 每列都有指定数据类型
  • 使用 SQL(结构化查询语言)与数据库交互
使用 pandas 高效导入数据

常见关系型数据库

Microsoft SQL Server 标志

Oracle 标志

  • SQLite 数据库是计算机文件

PostgreSQL 标志

SQLite 标志

使用 pandas 高效导入数据

连接数据库

  • 两步流程:
    1. 创建与数据库的连接方式
    2. 查询数据库

数据库剪贴画

使用 pandas 高效导入数据

创建数据库引擎

SQLAlchemy 标志

  • sqlalchemycreate_engine() 创建处理数据库连接的引擎
    • 需要要连接的数据库字符串 URL
    • SQLite URL 格式: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 高效导入数据

从数据库获取数据

# 加载 pandas 和 sqlalchemy 的 create_engine
import pandas as pd
from sqlalchemy import create_engine

# 创建数据库引擎以管理连接 engine = create_engine("sqlite:///data.db")
# 通过表名加载整个 weather 表 weather = pd.read_sql("weather", engine)
使用 pandas 高效导入数据
# 创建数据库引擎以管理连接
engine = create_engine("sqlite:///data.db")

# 用 SQL 加载整个 weather 表 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 高效导入数据

¡Vamos a practicar!

使用 pandas 高效导入数据

Preparing Video For Download...