第八课: - 从Microsoft SQL数据库读取
2024-10-20 20:31:04
第 8 课
如何从Microsoft SQL数据库中提取数据
In [1]:
# Import libraries
import pandas as pd
import sys
from sqlalchemy import create_engine, MetaData, Table, select, engine
In [2]:
print('Python version ' + sys.version)
print('Pandas version ' + pd.__version__)
Python version 3.5.1 |Anaconda custom (64-bit)| (default, Feb 16 2016, 09:49:46) [MSC v.1900 64 bit (AMD64)]
Pandas version 0.20.1
版本1
在本节中,我们使用sqlalchemy库从sql数据库中获取数据。确保使用您自己的ServerName,Database,TableName。
In [3]:
# Parameters
TableName = "data"
DB = {
'drivername': 'mssql+pyodbc',
'servername': 'DAVID-THINK',
#'port': '5432',
#'username': 'lynn',
#'password': '',
'database': 'BizIntel',
'driver': 'SQL Server Native Client 11.0',
'trusted_connection': 'yes',
'legacy_schema_aliasing': False
} # Create the connection
engine = create_engine(DB['drivername'] + '://' + DB['servername'] + '/' + DB['database'] + '?' + 'driver=' + DB['driver'] + ';' + 'trusted_connection=' + DB['trusted_connection'], legacy_schema_aliasing=DB['legacy_schema_aliasing'])
conn = engine.connect() # Required for querying tables
metadata = MetaData(conn) # Table to query
tbl = Table(TableName, metadata, autoload=True, schema="dbo")
#tbl.create(checkfirst=True) # Select all
sql = tbl.select() # run sql code
result = conn.execute(sql) # Insert to a dataframe
df = pd.DataFrame(data=list(result), columns=result.keys()) # Close connection
conn.close() print('Done')
Done
选择数据帧中的内容。
In [4]:
df.head()
Out[4]:
Date | Symbol | Volume | |
---|---|---|---|
0 | 2013-01-01 | A | 0.00 |
1 | 2013-01-02 | A | 200.00 |
2 | 2013-01-03 | A | 1200.00 |
3 | 2013-01-04 | A | 1001.00 |
4 | 2013-01-05 | A | 1300.00 |
In [5]:
df.dtypes
Out[5]:
Date datetime64[ns]
Symbol object
Volume object
dtype: object
转换为特定的数据类型。下面的代码必须修改成符合你的表。
版本 2
In [6]:
import pandas.io.sql
import pyodbc
In [7]:
# Parameters
server = 'DAVID-THINK'
db = 'BizIntel' # Create the connection
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + DB['servername'] + ';DATABASE=' + DB['database'] + ';Trusted_Connection=yes') # query db
sql = """ SELECT top 5 *
FROM data """
df = pandas.io.sql.read_sql(sql, conn)
df.head()
Out[7]:
Date | Symbol | Volume | |
---|---|---|---|
0 | 2013-01-01 | A | 0.0 |
1 | 2013-01-02 | A | 200.0 |
2 | 2013-01-03 | A | 1200.0 |
3 | 2013-01-04 | A | 1001.0 |
4 | 2013-01-05 | A | 1300.0 |
版本 3
In [8]:
from sqlalchemy import create_engine
In [9]:
# Parameters
ServerName = "DAVID-THINK"
Database = "BizIntel"
Driver = "driver=SQL Server Native Client 11.0" # Create the connection
engine = create_engine('mssql+pyodbc://' + ServerName + '/' + Database + "?" + Driver) df = pd.read_sql_query("SELECT top 5 * FROM data", engine)
df
Out[9]:
Date | Symbol | Volume | |
---|---|---|---|
0 | 2013-01-01 | A | 0.0 |
1 | 2013-01-02 | A | 200.0 |
2 | 2013-01-03 | A | 1200.0 |
3 | 2013-01-04 | A | 1001.0 |
4 | 2013-01-05 | A | 1300.0 |
This tutorial was rewrited by CDS.
最新文章
- Ajax表单序列化后的数据格式转成Json发送给后台
- C语言学习012:将代码文件分成多个文件
- spring security使用数据库资源
- 学习总结 java基础
- Window Phone 8开发问题反思
- 在mac下安装jdk1.7(转)
- VBA Excel 单元格操作
- C++实现二叉树的基本操作
- linux中grep的用法
- (莱昂氏unix源代码分析导读-49) 字符缓冲区
- python 循环结构 while for...in
- idea springboot热部署无效问题
- Mybatis中resultType理解
- STL中的拷贝替换算法(so easy)
- 【agc003D】Anticube
- htmlayout做的虎鲸宝宝
- 字符串函数---atof()函数详解
- STM32 Hardware Development
- 20145214 《Java程序设计》第3周学习总结
- 转 廖雪峰 urllib