pandas.read_sql_table(table_name,con,schema = None,index_col = None,coerce_float = True,parse_dates = None,columns = None,chunksize = None )源代码
通过数据库表名读入DataFrame
。
给定一个表名和一个可连接SQLAlchemy
,返回一个DataFrame
。此功能不支持DBAPI连接。
参数: | table_name: 数据库中SQL表的名称。 con: 不支持SQLite DBAPI连接模式。 schema: 要查询的数据库中的SQL模式的名称(如果数据库flavor支持此功能)。 如果为None(默认值), 则使用默认架构。 index_col:字符串或字符串列表,可选,默认值:无 要设置为索引的列(MultiIndex)。 coerce_float: 尝试将非字符串,非数字对象(如 可能导致精度损失。 parse_dates: 要解析为日期的列名列表。
格式字符串在解析字符串时间时是与 或者在解析整数时间戳时是(
特别适用于没有本机 columns: 从SQL表中选择的列名列表 chunksize: 如果指定,则返回一个迭代器,其中 |
返回: |
|
例如,
1)MySQLdb
import MySQLdb
import pandas as pd
conn= MySQLdb.connect(host='myhost',
port=3306,user='myusername', passwd='mypassword',
db='information_schema')
resp = pd.read_sql_table(table_name = 't_line',con = conn,parse_dates = 'time',index_col = 'time',columns = ['a','b','c'])
conn.close()
2)SQLite
from sqlalchemy import create_engine
import pandas as pd
# 创建 SQLite 数据库和表
engine = create_engine('sqlite:///example.db')
connection = engine.connect()
connection.execute('''
CREATE TABLE IF NOT EXISTS employees (
id INTEGER PRIMARY KEY,
name TEXT,
title TEXT
)
''')
connection.execute('''
INSERT INTO employees (name, title) VALUES
('John Doe', 'Software Engineer'),
('Jane Smith', 'Data Scientist')
''')
connection.close()
# 使用 pandas.read_sql_table 读取数据
df = pd.read_data_table('employees', con=engine)
# 显示 DataFrame
print(df)