第 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.

第八课: - 从Microsoft SQL数据库读取的更多相关文章

  1. Microsoft SQL - 数据库管理系统

    数据库管理系统(Server Management Studio) SQL Server Management Studio是一个数据库管理系统软件,数据库可以看成是一个个存储数据的文件,而Manag ...

  2. Microsoft SQL - 学习总目录

    Microsoft SQL - 数据库管理系统 Microsoft SQL - 数据类型 Microsoft SQL - 查询与更新 Microsoft SQL - 操作语句 Microsoft SQ ...

  3. ASP.NET动态网站制作(15)-- SQL数据库(1)

    前言:数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,用户可以对文件中的数据进行增.删.改.查.数据库有很多种类型,从简单的存储有各种数据的表格到能都进行海量数据存储的大型数据库 ...

  4. 此操作只能由 SQL Server 中拥有配置数据库读取权限的用户在已加入到某个服务器场的计算机上执行

    错误提示:此操作只能由 SQL Server 中拥有配置数据库读取权限的用户在已加入到某个服务器场的计算机上执行.若要将此服务器连接到服务器场,请使用 SharePoint 产品配置向导,该向导可从 ...

  5. Microsoft SQL Server 数据库 错误号大全

    panchzh :Microsoft SQL Server 数据库 错误号大全0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒 ...

  6. C#读取csv、xls、sql数据库的实现

    using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...

  7. jquery autocomplete实现读取sql数据库自动补全TextBox

    转自我本良人 原文 jquery autocomplete实现读取sql数据库自动补全TextBox 项目需要这样子一个功能,其他部门提的意见,只好去实现了哦,搞了好久才弄出来,分享一下. 1.前台页 ...

  8. Jmeter—8 连接microsoft sql server数据库取数据

    本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...

  9. Microsoft SQL Server,附加数据库 错误:Error 916解决方法

    错误信息:错误提示:标题: Microsoft SQL Server Management Studio Express ——————————  无法为此请求检索数据. (Microsoft.SqlS ...

随机推荐

  1. SQL 分组

  2. HTML 5语义化标签

    HTML 5的革新之一:语义化标签一节元素标签. 在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义.(即使我们用css样式的id和class形容这块内容的意义).这些标 ...

  3. PAT_A1144#The Missing Number

    Source: PAT A1144 The Missing Number (20 分) Description: Given N integers, you are supposed to find ...

  4. loadrunner录制不了浏览器

    Loadrunner11.0启动WebTours之总结1 第一次安装LR11时,安装安组件后没有对电脑进行重启,直接安装的LR112 安装完毕LR后,录制脚本时发现不能启动IE11.百度发现LR支持I ...

  5. Python学习【第1篇】:环境配置

    1. 下载安装包 https://www.python.org/ftp/python/2.7.14/python-2.7.14.amd64.msi    # 2.7安装包   https://www. ...

  6. SPU、SKU、ARPU是什么,我来记录一下我的理解

    在电商系统里经常会提到“商品”.“单品”.“SPU”.“SKU”这几个词,那么这几个词到底是什么意思呢? 既然不知道是什么,那么我们就查一下:SPU = Standard Product Unit ( ...

  7. luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)

    手动博客搬家: 本文发表于20181125 13:25:03, 原地址https://blog.csdn.net/suncongbo/article/details/84487306 题目链接: ht ...

  8. java并发之停止线程

    停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作.停止一个线程可以用Thread.stop()方法,但最好不要用它.虽然它确实可以停止一个正在运行的线程,但是这个方法是不安 ...

  9. 0419MySQL ORDER BY的实现分析

    转自:http://www.2cto.com/database/201202/120001.html 简朝阳 总的来说,在 MySQL 中的ORDER BY有两种排序实现方式,一种是利用有序索引获取有 ...

  10. Spring深入理解(二)

    这个方法实现了 AbstractApplicationContext 的抽象方法 refreshBeanFactory,这段代码清楚的说明了 BeanFactory 的创建过程.注意 BeanFact ...