pandas 分块读取mssql数据库指定时间数据
时间: 2023-12-07 13:04:58 浏览: 210
你可以使用 pandas.read_sql 方法从 MSSQL 数据库中读取指定时间范围内的数据。下面是一个分块读取的示例代码:
```python
import pandas as pd
import pyodbc
# 连接数据库
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=server_name;DATABASE=db_name;UID=user_id;PWD=password')
# 定义 SQL 查询语句和参数
query = "SELECT * FROM table_name WHERE date_column BETWEEN ? AND ?"
params = ('2021-01-01', '2021-06-30')
# 分块读取数据
chunk_size = 1000
chunks = pd.read_sql(query, conn, params=params, chunksize=chunk_size)
# 合并分块数据
result = pd.concat(chunks)
# 关闭数据库连接
conn.close()
# 打印结果
print(result.head())
```
在上面的代码中,我们首先连接 MSSQL 数据库,然后定义 SQL 查询语句和参数,其中 date_column 是你要筛选的日期列名,? 是占位符,params 是传递给 SQL 查询语句的参数。然后我们使用 pd.read_sql 方法分块读取数据,其中 chunksize 参数指定每次读取的行数,read_sql 方法会返回一个生成器对象 chunks,每次迭代会返回一个 Pandas DataFrame,最后使用 pd.concat 方法合并所有分块数据。最后,我们关闭数据库连接并打印结果。
注意,如果你的数据量非常大,分块读取是一个非常好的选择,可以避免内存不足的问题。但是,如果你的数据量不是很大,直接读取整个数据集可能会更加方便和高效。
阅读全文