毕业季来临,许多同学面临着获取上市公司各种数据以写毕业论文的问题。遂写此文供大家参考。
所需环境配置
- python3.6及以上任意版本
- pandas库
- xlwt库
- tushare库
环境配置方法
- 安装python软件,可前往http://pan.halashuo.cn/?dir=exe下载安装包进行安装,安装只需如下图所示勾选添加为环境变量、其余一路next即可。
2. 使用win+r键打开运行界面,输入cmd回车进入黑框,开始下载所需库:
输入pip install pandas即可下载pandas库:
待屏幕出现Successful installation即可继续安装tushare库及xlwt库,安装方法同理。
获取数据
打开编辑器
使用安装python自带的IDLE或其他任意python编辑器,若无法找到,在屏幕下方搜索栏输入查找即可:
导入所需库
1 2 |
import pandas as pd import tushare as ts |
登录拥有权限的账号
若想获取较为全面数据,需注册账号,可以使用本人账号进行测试:
账号:550014012@qq.com
密码:123456
之后点击个人主页->接口TOKEN->复制接口TOKEN即可
根据该token即可使用pro接口:
1 |
pro = ts.pro_api('在此键入所复制TOKEN') |
获取日线数据
返回刚才页面,打开数据接口页面,即可查看所有可获取数据类型及获取函数和所需参数。
以获取2021-1-1至2022-1-1的平安银行日线数据为例:
1 |
data = pro.daily(ts_code='000001.SZ', start_date='20210101', end_date='20220101') |
注意,ts_code参数为必须输入,开始与结束日期可不输入,最多可同时获取5000个交易日数据。此时获取到的数据为:
ts_code | trade_date | open | high | low | close | pre_close | change | pct_chg | vol | amount | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 000001.SZ | 20211231 | 16.86 | 16.90 | 16.40 | 16.48 | 16.82 | -0.34 | -2.0214 | 1750760.89 | 2899617.148 |
1 | 000001.SZ | 20211230 | 16.76 | 16.95 | 16.72 | 16.82 | 16.75 | 0.07 | 0.4179 | 796663.60 | 1342374.249 |
2 | 000001.SZ | 20211229 | 17.16 | 17.16 | 16.70 | 16.75 | 17.17 | -0.42 | -2.4461 | 1469373.98 | 2480534.592 |
3 | 000001.SZ | 20211228 | 17.22 | 17.33 | 17.09 | 17.17 | 17.22 | -0.05 | -0.2904 | 1126638.91 | 1934461.075 |
4 | 000001.SZ | 20211227 | 17.33 | 17.35 | 17.16 | 17.22 | 17.31 | -0.09 | -0.5199 | 731118.99 | 1260455.319 |
… | … | … | … | … | … | … | … | … | … | … | … |
238 | 000001.SZ | 20210108 | 19.90 | 20.10 | 19.31 | 19.85 | 19.90 | -0.05 | -0.2513 | 1195473.22 | 2348316.363 |
239 | 000001.SZ | 20210107 | 19.52 | 19.98 | 19.23 | 19.90 | 19.56 | 0.34 | 1.7382 | 1584185.30 | 3111274.625 |
240 | 000001.SZ | 20210106 | 18.08 | 19.56 | 18.00 | 19.56 | 18.17 | 1.39 | 7.6500 | 1934945.12 | 3648521.909 |
241 | 000001.SZ | 20210105 | 18.40 | 18.48 | 17.80 | 18.17 | 18.60 | -0.43 | -2.3118 | 1821352.10 | 3284606.913 |
242 | 000001.SZ | 20210104 | 19.10 | 19.10 | 18.44 | 18.60 | 19.34 | -0.74 | -3.8263 | 1554216.43 | 2891682.312 |
243 rows × 11 columns
最后,将其保存为excel的xlsx文件即可:
1 |
data.to_excel(r"E:\000001SZ.xlsx")#注意更换为自己的地址 |
日线完整代码
1 2 3 4 5 6 |
import pandas as pd import tushare as ts pro = ts.pro_api('在此键入所复制TOKEN') data = pro.daily(ts_code='000001.SZ', start_date='20210101', end_date='20220101') data.to_excel(r"C:\Users\pbh0612\Desktop\000001SZ.xlsx") |
因此只需5行代码即可获取十多年的股票数据,非常方便。
同时获取全部4711种股票数据
1 2 3 4 5 6 7 8 |
import pandas as pd import tushare as ts pro = ts.pro_api('3a31d6f88e6285f6a697de5853e8eceaea4aa4caf4769c8b00c2950a') stock_list = pro.stock_basic() for tscode in stock_list: data = pro.daily(ts_code=tscode, start_date='20210101', end_date='20220101') data.to_excel(r"C:\Users\pbh0612\Desktop\000001SZ.xlsx") |
获取利润表
1 2 3 4 5 6 |
import pandas as pd import tushare as ts pro = ts.pro_api('在此键入所复制TOKEN') data = pro.income(ts_code='000001.SZ') data.to_excel(r"C:\Users\pbh0612\Desktop\000001income.xlsx") |
参数解释可参考https://tushare.pro/document/2?doc_id=33
其他功能及其函数
分红送股:dividend
资产负债表:balancesheet
现金流量表:cashflow
业绩报告:forecast
更多接口可前往https://www.tushare.pro/document/2查看。
暂无评论