• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共95篇

    python3.X - 数据分析 - Pandas

关闭

返回栏目

关闭

返回python3.X - 数据分析 - Pandas栏目

15 - 导入数据 - pd.read_sql(query, conobject) - 读sql

作者:

贺及楼

成为作者

更新日期:2024-08-06 07:34:02

read_sql()

表格总结

例子编号 描述 函数/参数 预期结果描述
1 读取整个表 read_sql_table 整个表的前 5 行
2 执行 SQL 查询 read_sql_query 根据查询条件的前 5 行
3 读取特定列 columns 特定列的前 5 行
4 读取元数据定义的表 MetaData, reflect 使用元数据的前 5 行
5 读取结果集的前几行 chunksize 查询结果的前 10 行
6 读取数据库视图 read_sql_table 视图的前 5 行
7 读取数据库临时表 read_sql_table 临时表的前 5 行
8 指定列的数据类型 dtype 指定数据类型列的前 5 行
9 使用索引列 index_col 以特定列索引的前 5 行
10 过滤数据并读取 SQL 查询过滤 过滤后结果的前 5 行

1: 读取整个表

  • 描述:读取 SQL 数据库中整个表的数据。
  • 代码
    1. import pandas as pd
    2. from sqlalchemy import create_engine
    3. engine = create_engine('sqlite:///mydatabase.db') # 示例为 SQLite 数据库
    4. df = pd.read_sql_table('my_table', con=engine)
    5. print(df.head())
  • 预期结果:输出 ‘my_table’ 表的前 5 行。

2: 执行 SQL 查询

  • 描述:执行自定义的 SQL 查询并读取结果。
  • 代码
    1. query = "SELECT * FROM my_table WHERE column1 = 'value'"
    2. df = pd.read_sql_query(query, con=engine)
    3. print(df.head())
  • 预期结果:输出符合 WHERE 条件的 ‘my_table’ 表的前 5 行。

3: 读取特定列

  • 描述:从 SQL 表中读取特定的列。
  • 代码
    1. columns = ['column1', 'column2']
    2. df = pd.read_sql_table('my_table', con=engine, columns=columns)
    3. print(df.head())
  • 预期结果:输出 ‘my_table’ 表中 ‘column1’ 和 ‘column2’ 列的前 5 行。

4: 读取数据库的元数据

  • 描述:使用数据库的元数据来读取表结构。
  • 代码
    1. from sqlalchemy import MetaData
    2. metadata = MetaData(bind=engine)
    3. metadata.reflect()
    4. df = pd.read_sql_table('my_table', con=engine, schema=metadata)
    5. print(df.head())
  • 预期结果:输出 ‘my_table’ 表的前 5 行,使用元数据来确定表结构。

5: 读取结果集的前几行

  • 描述:限制从 SQL 查询中读取的行数。
  • 代码
    1. df = pd.read_sql_query(query, con=engine, chunksize=10)
    2. print(next(df).head()) # 使用 chunksize 需要迭代结果
  • 预期结果:输出查询结果的前 10 行。

6: 读取数据库视图

  • 描述:读取 SQL 数据库中的视图。
  • 代码
    1. df = pd.read_sql_table('my_view', con=engine)
    2. print(df.head())
  • 预期结果:输出 ‘my_view’ 视图的前 5 行。

7: 读取数据库中的临时表

  • 描述:读取 SQL 数据库中的临时表。
  • 代码
    1. df = pd.read_sql_table('temp_my_table', con=engine)
    2. print(df.head())
  • 预期结果:输出 ‘temp_my_table’ 临时表的前 5 行。

8: 读取数据库中的数据并指定列的数据类型

  • 描述:在读取时指定某些列的数据类型。
  • 代码
    1. dtypes = {'column1': int, 'column3': 'category'}
    2. df = pd.read_sql_table('my_table', con=engine, dtype=dtypes)
    3. print(df.head())
  • 预期结果:输出 ‘my_table’ 表的前 5 行,’column1’ 为 int 类型,’column3’ 为 ‘category’ 类型。

9: 读取数据库并使用索引列

  • 描述:使用 SQL 表中的一列作为 DataFrame 的索引。
  • 代码
    1. df = pd.read_sql_table('my_table', con=engine, index_col='id_column')
    2. print(df.head())
  • 预期结果:输出 ‘my_table’ 表的前 5 行,以 ‘id_column’ 作为索引。

10: 从数据库读取并过滤数据

  • 描述:在 SQL 查询中过滤数据,然后读取结果。
  • 代码
    1. query = "SELECT * FROM my_table WHERE column2 > 100"
    2. df = pd.read_sql_query(query, con=engine)
    3. print(df.head())
  • 预期结果:输出 ‘my_table’ 表中 ‘column2’ 大于 100 的记录的前 5 行。