python基础案例 - Pandas统计分析基础

例13-1 下面是数据库:stock1(沪深A股交易数据库,收集了我国从1990.12以来,部分A股的日交易数据)中,股票日交易数据表部分列名:

/*--------------股票日交易数据记录------------------*/
CREATE TABLE trDay 	(
cStockNo	char(8)	not null,		                                      /*股票代码*/
cDay		datetime	not null,		                           /*交易日期*/
mOpen		real		not null default 0,	         /*开盘价*/
mHigh		real		not null default 0,	         /*最高价*/
mLow		real		not null default 0,	         /*最低价*/
mClose		real		not null default 0,	         /*收盘价*/
iVol		real		not null default 0,	         /*成交量*/
mm		real		not null default 0,	         /*成交额*/
dcChange                   decimal(8,4) not null default 0,	                           /*换手率*/
dcRate 		decimal(6,2) not null default 0,	                            /*涨幅*/
constraint trDay_pk primary key(cStockNo,cDay),                /*定义主键:cStockNo, cDay */
);

查询股票代码为sh600006(东风汽车)的交易日期、收盘价,显示3条记录

from urllib import parse            # 因为密码中含有特殊字符所以需要先进行一步转码
from sqlalchemy import create_engine       # 主要用于建立数据库连接引擎
import pandas as pd                                      # 这个库,可以对数据库进行读写操作
userName = 'root'
password = parse.quote_plus('P@ssw0rd')      # 密码转码
dbHost = '127.0.0.1'
dbPort = 3306
dbName = 'stock1'    # 使用的数据库名
DB_CONNECT = f'mysql+pymysql://{userName}:{password}@{dbHost}:{dbPort}/{dbName}?charset=utf8'
# connStr = "mysql+pymysql://root:P@ssw0rd@127.0.0.1:3306/stock1?charset=utf8"
engine = create_engine(DB_CONNECT)                   # 数据连接引擎
sql = "select cDay,mClose from trDay where cStockNo ='sh600001' limit 6,3"
trDay = pd.read_sql(sql, con = engine)          # 返回为DataFrame对象
print(trDay.values)                             # trDay.values 为二维数组
print("返回记录行数:",trDay.shape[0])

使用sqlalchemy进行数据库连接时如果password中含有特殊字符例如@,可以先使用urllib将密码转码之后进行拼接。

结果:

 数据库查询结果:

 

例13-1-2:查询股票代码为sh600001的交易数据,查看DataFrame的属性

from urllib import parse
from sqlalchemy import create_engine       # 主要用于建立数据库连接引擎
import pandas as pd                                      # 这个库,可以对数据库进行读写操作
userName = 'root'
password = parse.quote_plus('P@ssw0rd')
dbHost = '127.0.0.1'
dbPort = 3306
dbName = 'stock1'
DB_CONNECT = f'mysql+pymysql://{userName}:{password}@{dbHo
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值