获取所有股票历史数据存到Excel
用Python如何获取所有股票的历史数据并保存到Excel文件?
作者:大叔叔链接:https://www.zhihu.com/question/56899161/answer/316455718
来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
# -*- coding: utf-8 -*-
"""
Created on Sat Feb 10 18:44:25 2018
@author: Sheng
"""
#导入两个模块
import tushare as ts
import pandas as pd
# 首先通过ts.get_stock_basics()命令获得股票代码的一些基本数据 ,然后通过to_excel()命令保存。
# 以下是本人保存的路径
source_date=r'D:\\Users\\Sheng\\Desktop\\Financetranscript\\stocklist.xlsx'
# 我们需要提取股票代码,用于后面的for循环,首先读取之前下载好的文件,将第一列的股票代码进行字符串转化。
df=pd.read_excel(source_date,converters={'code':lambda x:str(x)})
# 将提取出来的股票代码列表化赋值与 stockcode 这个变量。
stockcode=list(map(str,df['code']))
# 开始进行循环下载。。
for i in stockcode:
print('开始下载{}股票数据.....'.format(i))
#设定每个文件的文件名和存储地址。
file_address=r'D:\\Users\\Sheng\\Desktop\\Financetranscript\\bigdata\\{}.xlsx'.format(i)
#提取单个股票的历史数据。
stock_data=ts.get_hist_data(i)
#导出到之前设定的好的文件地址。
stock_data.to_excel(file_address)
#由于导出的每个股票的历史数据中并没有包含股票代码,所以我把股票代码加入到Excel中,
#在日期的后一列加入股票代码,方便以后所有数据整合后可以进行股票筛选。
#如果不需要,可以删除下面三行代码。
dw_data=pd.read_excel(file_address)
dw_data.insert(loc=1,column='code',value=i)
dw_data.to_excel(file_address)
# 打印出下载进程,方便观察。。。
print('{}/{} has been downloaded,{}股票数据下载完毕'
.format(stockcode.index(i)+1,len(stockcode),i))
print('-----------------------------------------------------')
作者:大叔叔链接:https://www.zhihu.com/question/56899161/answer/316455718来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
一共3500个股票,慢慢下吧。。。睡了!晚安
-------------------------------------------------------------------------------------------------------{分割线}
更新下代码,运用了多线程,下载速度提高N倍,原来1个多小时的活现在只要5分钟。简单粗暴, 以下是代码。文件保存地址换一下就可以用了。
import pandas as pd
import tushare as ts
import os
from datetime import datetime
from datetime import timedelta
from multiprocessing.dummy import Pool as ThreadPool
import time
class stock_data:
def __init__(self):
self.file_path_basic = r'D:\PycharmProjects\Trade\Final_Project_A_Stock\Stock_data\basics.h5'
self.file_dir_daily = r'D:\PycharmProjects\Trade\Final_Project_A_Stock\Stock_data\Daily'
self.current_date_key_path = datetime.today().strftime('%d_%m_%Y')
self.latest_basic_key_path = '/Basics_Data/Stock_Basics_{}'.format(self.current_date_key_path)
self.whole_files_list_daily = os.listdir(self.file_dir_daily)
self.start_date = '2014-01-01' # 选择开始时间
def update_stock_basic(self): # 更新股票基本面数据
hdf = pd.HDFStore(self.file_path_basic)
if self.latest_basic_key_path in hdf.keys():
print("基本面数据已经更新到最新至{}".format(self.current_date_key_path))
else:
print("开始更新股票基本面至{}".format(self.current_date_key_path))
df = ts.get_stock_basics()
hdf.put(self.latest_basic_key_path, df, format='t', data_columns=True, append=False)
print("股票基本面更新完毕最新至{}".format(self.current_date_key_path))
latest_stock_basics = hdf.get(hdf.keys()[-1])
hdf.close()
return latest_stock_basics
def update_daily_data(self, code):
try:
df = ts.get_k_data(code, self.start_date, ktype='d', autype='qfq')
df.set_index('date', inplace=True)
df.to_csv(self.file_dir_daily + '\\' + '{}.csv'.format(code), mode='wt')
process = round((stock_code.index(code)/len(stock_code))*100, 2)
print('{}%'.format(process))
except:
print('没有数据')
st = stock_data()
stock_basics = st.update_stock_basic()
stock_basics = stock_basics[~stock_basics['name'].str.contains('ST')] # 把ST股票去掉
stock_code = list(map(str, stock_basics.index))
def daily_update():
start1 = time.time()
pool = ThreadPool(400)
try:
pool.map(st.update_daily_data, stock_code)
except:
pool.map(st.update_daily_data, stock_code)
pool.close()
pool.join()
end1 = time.time()
diff2 = end1 - start1
print(diff2) #计算花费时间
if __name__ == '__main__':
daily_update()
获取所有股票历史数据存到Excel相关推荐
- 如何把股票数据导出excel?导出股票历史数据到Excel的方法
共享一个可以把股票数据导出Excel的方法,是一个在线下载股票历史数据,目前可以下载A股.港股.美股所有个股的历史数据,数据是Excel的方便分析查看.做表,最主要是免费... 只要两步就能下载: 填 ...
- 获取页眉值vba_VBA抓取股票历史数据的整体表处理
大家好,我们今日讲解"VBA抓取股票历史数据的整体表处理",这节内容是"VBA信息获取与处理"教程中第六个专题"VBA中利用XMLHTTP完成网抓数据 ...
- 量化经济学:手把手教你如何使用EXCEL分析股票历史数据
1.数据来源获取 数据集的下载来源为Yahoo Finance.Yahoo Finance是雅虎公司金融媒体领域的一个相关网站.它提供财经新闻.数据和评论,包括股票报价.新闻稿.财务报告和原创内容.它 ...
- python获取股票历史数据
各种股票软件,例如通达信.同花顺.大智慧,都可以实时查看股票价格和走势,做一些简单的选股和定量分析,但是如果你想做更复杂的分析,例如回归分析.关联分析等就有点捉襟见肘,所以最好能够获取股票历史及实时数 ...
- Python获取股票历史数据和收盘数据的代码实现
http://casey.blog.51cto.com/9994043/1707905 各种股票软件,例如通达信.同花顺.大智慧,都可以实时查看股票价格和走势,做一些简单的选股和定量分析,但是如果你想 ...
- 通过VBA在excel中实现股票历史数据查询和K线趋势图绘制(完整的excel原件可以在我的资源中下载)
原始文件下载地址:股票历史数据和K线图趋势线的绘制-VB文档类资源-CSDN下载 文章目录 前言 一.目标 二.方法 三.界面和使用说明 四.代码说明 1.查询历史数据 2.绘制K线图和趋势线 3.清 ...
- python 大智慧股票行情数据_Python获取股票历史数据和收盘数据的代码实现
各种股票软件,例如通达信.同花顺.大智慧,都可以实时查看股票价格和走势,做一些简单的选股和定量分析,但是如果你想做更复杂的分析,例如回归分析.关联分析等就有点捉襟见肘,所以最好能够获取股票历史及实时数 ...
- python数据采集 爬虫 生意宝_Python爬虫实战 :批量采集股票数据,并保存到Excel中...
小编说:通过本文,读者可以掌握分析网页的技巧.Python编写网络程序的方法.Excel的操作,以及正则表达式的使用.这些都是爬虫项目中必备的知识和技能.本文选自<Python带我起飞>. ...
- 基于macd、kdj、ma技术指标分析股票多空方向——应用开发2 获取股票历史数据
这里选用tushare平台获取股票历史数据 所用包 tushare .pandas.datetime import tushare as ts import pandas as pd import d ...
- tushare pro 版本获取股票历史数据
最近研究程序化交易,需要使用股票历史数据.由于保存了所有股票历史数据,但是是截至到2018-12-28日,所以开始研究时对数据实时性要求不高,能实现功能即可. 经过近一个月的研究后, 即在 最基础表( ...
最新文章
- pycharm test 右键run
- 【Android RTMP】x264 图像数据编码 ( Camera 图像数据采集 | NV21 图像数据传到 Native 处理 | JNI 传输字节数组 | 局部引用变量处理 | 线程互斥 )
- Linux Centos7安装Oracle12c第二版本
- SAP UI5 应用开发教程之二十五 - 使用代理服务器解决 SAP UI5 应用访问远端 OData 服务的跨域问题
- html文字如何排布成圆形,css多个扇形怎么拼凑成圆?
- 对PHP输入输出流学习和认识
- 谈谈Virtual DOM
- python中options类_Python的OptionParser模块
- c++小学期大作业攻略(二)整体思路+主界面
- EF架构~看看下面这代码,你还敢用它的延时加载吗?
- linux多线程编程 实验,linux操作系统-实验五-linux 多线程编程.docx
- JavaWeb框架学习文章索引
- ImportError: Missing required dependencies [‘pytz‘]
- Revel 企业级 Go 应用开发框架
- uni-app APP支付 uni.requestPayment APP微信支付
- zblog php wordpress,ZblogPHP转换WordPress教程
- ClientDisconnectionReason(客户端断开原因)_羊豆豆_新浪博客
- 应急响应—常见应急响应处置思路
- 从零开始搭建博客Hexo-Node-Git搭建博客
- Error 1718. File was rejected by digital signature policy错误,文件的数字签名被你的本地软件策略给拒绝了,来看看解决方法
热门文章
- 牛顿迭代法的matlab程序,牛顿迭代法matlab程序
- PHP在线教育直播平台源码 网课小程序源码 在线学习系统源码(PC+小程序+H5 )
- MobaXterm连接Linux教程
- Cadence Orcad Capture 高亮整个网络的方法图文视频教程
- BTC:关键阻力的突破会带来持续的积极情绪
- 网页内嵌多媒体 IE,Mozilla、Firefox、NetScape、Opera
- unity 编辑器存档_Unity编辑器扩展之存储数据
- 文献解读:结构方程模型SEM基础,小白看这个就基本够了
- Matlab2017b 安装教程
- 非常经典的java编程题全集-共50题(11-30)