第 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数据库中获取数据。确保使用您自己的ServerNameDatabaseTableName

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.

最新文章

  1. Ajax表单序列化后的数据格式转成Json发送给后台
  2. C语言学习012:将代码文件分成多个文件
  3. spring security使用数据库资源
  4. 学习总结 java基础
  5. Window Phone 8开发问题反思
  6. 在mac下安装jdk1.7(转)
  7. VBA Excel 单元格操作
  8. C++实现二叉树的基本操作
  9. linux中grep的用法
  10. (莱昂氏unix源代码分析导读-49) 字符缓冲区
  11. python 循环结构 while for...in
  12. idea springboot热部署无效问题
  13. Mybatis中resultType理解
  14. STL中的拷贝替换算法(so easy)
  15. 【agc003D】Anticube
  16. htmlayout做的虎鲸宝宝
  17. 字符串函数---atof()函数详解
  18. STM32 Hardware Development
  19. 20145214 《Java程序设计》第3周学习总结
  20. 转 廖雪峰 urllib

热门文章

  1. C# 网页内容获取
  2. ASP.NET 页面验证cookie
  3. es7 class的写法
  4. Jsp页面中常用的EL表达式
  5. NFS网络文件系统方案
  6. mysql主从机制的部署与应用
  7. Python 设置字体样式
  8. SBC37x交叉编译平台QT+OPENCV【2】虚拟机Vbox下Ubuntu的磁盘扩容
  9. RabbitMQ学习总结(1)——基础概念详细介绍
  10. Wireshark中的一些SNMP相关的过滤器