利用API獲取金融資料並畫圖
利用 Tushare
首先這個社群是用積分制的,並不開放所有功能。比較受限,感覺不是很爽。
https://tushare.pro/
1.設定token
#先引入後面分析、視覺化等可能用到的庫
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
#正常顯示畫圖時出現的中文和負號
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
#設定token
token='你的token'
#ts.set_token(token)
pro = ts.pro_api(token)
2.分析個股行情資料:
利用**pro.stock_basic()**函式
引數:is_hs:是否滬深港通標的,N否、H滬股通、S深股通;list_status:上市狀態,L上市、D退市、P暫停上市;exchange:交易所 SSE上交所,SZSE深交所,HKEX港交所。
pro.daily(ts_code= 或 trade_date=)
日行情:daily;周行情:weekly;月行情:monthly
#獲取當前上市的股票程式碼、簡稱、註冊地、行業、上市時間等資料
basic=pro.stock_basic(list_status='L')
#獲取平安銀行日行情資料
pa=pro.daily(ts_code='000001.SZ', start_date='20180101',
end_date='20190106')
#K線圖視覺化
from pyecharts import Kline
pa.index=pd.to_datetime(pa.trade_date)
pa=pa.sort_index()
v1=list(pa.loc[:,['open','close','low','high']].values)
t=pa.index
v0=list(t.strftime('%Y%m%d'))
kline = Kline("平安銀行K線圖",title_text_size=15)
kline.add("", v0, v1,is_datazoom_show=True,
mark_line=["average"],
mark_point=["max", "min"],
mark_point_symbolsize=60,
mark_line_valuedim=['highest', 'lowest'] )
kline.render("上證指數圖.html")
pyecharts 的圖還是很漂亮的
3.獲取多隻股票並儲存資料
#定義獲取多隻股票函式:
def get_stocks_data(stocklist,start,end):
all_data={}
for code in stocklist:
all_data[code]=pro.daily(ts_code=code,
start_date=start, end_date=end)
return all_data
#儲存本地
def save_data(all_data):
for code,data in all_data.items():
data.to_csv(r'data/'+code+'.csv',
header=True, index=False)
stocklist=list(basic.ts_code)[:15]
start=''
end=''
all_data=get_stocks_data(stocklist,start,end)
all_data['000002.SZ'].tail()
#將資料儲存到本地
save_data(all_data)
#讀取本地資料夾裡所有檔案
import os
#檔案儲存路徑
file=r'data/'
g=os.walk(file)
filenames=[]
for path,d,filelist in g:
for filename in filelist:
filenames.append(os.path.join(filename))
print(filenames)
#將讀取的資料檔案放入一個字典中
df={}
#從檔名中分離出股票程式碼
code=[name.split('.')[0] for name in filenames]
for i in range(len(filenames)):
filename=file+filenames[i]
df[code[i]]=pd.read_csv(filename)
利用 BaoStock
開放,並且官方文件就是例子。很清晰。http://baostock.com/baostock/index.php/Python_API%E6%96%87%E6%A1%A3#HelloWorld
"""
author: wpc
date: 2020-12-15 14:04
"""
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import baostock as bs# pip install baostock
import baostock as bs
import pandas as pd
#### 登陸系統 ####
lg = bs.login()
#### 獲取歷史K線資料 ####
# query_history_k_data()
fields= "date,code,open,high,low,close"
rs = bs.query_history_k_data("sh.000001", fields,
start_date='2000-01-01', end_date='2018-09-07',
frequency="d", adjustflag="2")
#frequency="d"取日k線,adjustflag="3"預設不復權,
#1:後復權;2:前復權
data_list = []
while (rs.error_code == '0') & rs.next():
# 獲取一條記錄,將記錄合併在一起
data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
result.index=pd.to_datetime(result.date)
#### 結果集輸出到csv檔案 ####
#result.to_csv("c:/zjy/history_k_data.csv",
# encoding="gbk", index=False)
result.head()
#### 登出系統 ####
#bs.logout()
result.info()
#將某些object轉化numeric
result=result.apply(pd.to_numeric, errors='ignore')
result.info()
result.close.plot(figsize=(16,8))
ax = plt.gca()#獲得當前的座標軸
ax.spines['right'].set_color('none')#將座標軸的上和右去掉
ax.spines['top'].set_color('none')
plt.show()
相關文章
- 如何利用電商API介面來獲取商品資料API
- 如何利用API介面獲取電商平臺資料?API
- 如何高效地利用淘寶API介面獲取商品資料API
- google books api 獲取圖書資訊GoAPI
- toapi:抓取任意網頁內容並提供 HTTP API獲取資料API網頁HTTP
- 從 falcon api 中獲取資料API
- zabbix api 獲取圖形API
- 教你如何使用API介面獲取資料!API
- 智慧手環睡眠資料API獲取API
- 【API】隨機獲取圖片API隨機
- 利用insert,update和delete注入獲取資料delete
- pandas讀取csv檔案資料並使用matplotlib畫折線圖和餅圖
- DataGridView如何獲取選中行資料並更新View
- 如何呼叫API獲取你想要的資料API
- 智慧手環圍欄資料API獲取API
- 智慧手環報文資料API獲取API
- 智慧手環體溫資料API獲取API
- 獲取資料並繫結到 UI | MAD SkillsUI
- 使用商品詳情API介面獲取商品資料API
- 如何透過API獲取實時商品資料API
- 如何使用API介面獲取淘寶商品資料API
- 如何免費獲取高畫質動圖並將其插入到Markdown中
- 利用淘寶/天貓API實現商品資料的實時獲取、處理與分析API
- 如何利用國產圖資料庫打造金融行業方案?資料庫行業
- API商品資料介面呼叫實戰:爬蟲與資料獲取API爬蟲
- Excel 讀取圖片並獲取儲存路徑Excel
- 使用selenium定位獲取標籤物件並提取資料物件
- 大資料實戰:電商該如何利用大資料獲取流量?大資料
- 使用Python呼叫API介面獲取淘寶商品資料PythonAPI
- 如何教會小白使用API介面獲取商品資料API
- 拼多多商品資料如何透過api介面獲取API
- API介面的藝術:如何巧妙獲取商品資料API
- 實時獲取化工網商品詳情API資料API
- Temu api介面 獲取商品詳情 資料採集API
- 如何用R和API免費獲取Web資料?APIWeb
- 如何獲取華為運動健康服務授權碼並呼叫Rest API訪問資料?健康服務RESTAPI
- 利用Python爬取新冠肺炎疫情實時資料,Pyecharts畫2019-nCoV疫情地圖PythonEcharts地圖
- 利用微信公眾號提供的官方API上傳圖片獲取永久圖片素材!當圖床用!API圖床