其他
利用tushare获取股票数据及实现可视化
本文作者:方 言,中南财经政法大学金融学院
本文编辑:王子一
技术总编:张馨月
爬虫俱乐部云端课程
一、获取实时分笔数据:get_realtime_quotes()
import tushare as ts
df = ts.get_realtime_quotes('000002') #单个股票实时行情
df[['code','name','price','bid','ask','volume','amount','time']] #需要显示的属性
返回结果从左至右分别表示股票代码、股票名称、当前的价格,竞买价(即“买一”报价)、竞卖价(即“卖一”报价)、成交量、成交金额以及当前的时间。
df = ts.get_realtime_quotes(['600900','000002','600519'])
df[['code','name','price','bid','ask','volume','amount','time']]
ts.get_realtime_quotes('sh') #上证指数
df = ts.get_realtime_quotes(['sh','sz','zxb','cyb']) #上证指数 深圳成指 中小板 创业板
df[['name','pre_close','open','price','high','low','bid','ask','volume','amount','time']]
执行结果:
二、数据的存储
import tushare as ts
df = ts.get_realtime_quotes('000002')
#直接保存
df.to_csv('D:/000002.csv',encoding = 'gb2312',index=False)
#选取指定的列保存
df.to_csv('D:/000002(1).csv',columns=['code','name','price','volume'],encoding = 'gb2312',index=False)
import tushare as ts
import os
filename = r'D:\bigfile.csv' #需要在工作路径下创建bigfile这个csv文件
for code in ['000875', '600848', '000981']:
df = ts.get_hist_data(code)
if os.path.exists(filename):
df.to_csv(filename, mode='a', header=None,index=False)
else:
df.to_csv(filename,index=False)
#这里会提示前往新的pro接口,主要是新接口获取实时分笔交易数据需要更多的积分,大家可以在充值积分之后进行操作
【注:如果不考虑header,直接使用df.to_csv(filename, mode=’a’)即可,否则,每次循环都会把columns名称也append进去】
三、可视化
import tushare as ts
import matplotlib.pyplot as plt
from datetime import datetime
import matplotlib.dates as mdates
def drawline(tcode, sdate, edate):
datadf = ts.pro_bar(
ts_code = tcode,
start_date = sdate,
end_date = edate,
#前复权处理
adj = 'qfq')
stockline = [datetime.strptime(d, '%Y%m%d').date() for d in datadf.trade_date]
plt.plot(stockline, datadf.close, '-', label = datadf.ts_code[0])
def drawmain():
#设置时间按“年月”的格式显示
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))
#X轴按年进行标记,还可以用MonthLocator()和DayLocator()
plt.gca().xaxis.set_major_locator(mdates.YearLocator()),
#自动旋转日期标记以避免重叠
plt.gcf().autofmt_xdate()
#显示图例
plt.legend()
#显示图片
plt.show()
def taskmain():
for cd in tscode:
drawline(cd, startdate, enddate)
#在tushare官网注册后,进入个人中心得到唯一指定的token
ts.set_token('dcc88f22cd05ab2fbccbd99effd88e377be19253e7e94a033cce8a20')
#初始化api
api = ts.pro_api()
#指定起止日期
startdate = '2002-01-01'
enddate = '2020-01-01'
#指定股票代码
tscode = {'600519.SH','000858.SZ','000568.SZ','002304.SZ','600809.SH','000596.SZ','603589.SH','600779.SH'}
#主程序
taskmain()
drawmain()
从Excel到Stata的“摆渡车”——import excel命令
光阴十载,见证了《经济研究》中的“高被引”
利用tushare获取股票数据
这些年,经管类C刊都在研究什么?
Seminar | 眼见为实吗?高管面部可信度、审计师任期与审计费用
Seminar | 恐怖袭击与CEO薪酬
代码补全,主题更换,Jupyter Notebook原来可以这样用?
【爬虫实战】“双十一”微博热搜实时跟进
Stata中的数值型变量分类神器--recode
fs命令——我们的小帮手【邀请函】听说你还在为处理表格头大?
用stack取代excel的数据重整操作吧Seminar | 委托贷款:打开中国影子银行的黑匣子
Seminar | 电话会议中的"non-answer"
Python 爬虫必杀技:XPath
面对相对路径和绝对路径的分岔口,你选对了吗? 空间数据可视化之spmap命令 快速计算两地距离——geodist命令介绍 Seminar | CFO:努力影响财务信息环境吗?微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。