Python 數據分析中金融數據的來源庫和簡單操作


金融數據

數據分析離不開數據的獲取,這里介紹幾種常用的獲取金融方面數據的方法。

pandas-datareader

pandas-datareader 庫包含了全球最著名的幾家公司所整理的金融數據,這些數據庫包括:

安裝

pip install -U pandas-datareader

使用

引入庫:import pandas_datareader.data as web

獲取數據:
web.DataReader(name=,data_source=,start=,end=)
通過指定的數據源獲取金融數據並返回 DataFrame 類型的數據。

  • name:數據集名稱,通常是股票代碼
  • data_source:數據源,yahoo,google,fred,ff 等
  • start,end 起始(默認為 2010/01/01)、結束日期(默認為當天)
start_dt = datetime.datetime(2010, 1, 1)
end_dt = datetime.date.today()

google_data = web.DataReader(name='GOOG', data_source='google', start=start_dt, end=end_dt)

TuShare

  • 免費、開源的python財經數據接口包
  • 實現對股票等金融數據從數據采集、清洗加工到數據存儲的過程
  • TuShare 返回的絕大部分的數據格式都是 pandas DataFrame 類型

數據類型

使用

  • 安裝:
    pip install -U tushare
  • 引入
    import tushare as ts
  • 歷史數據獲取
    ts.get_k_data()
import tushare as ts
start_dt = datetime.datetime(2010, 1, 1)
end_dt = datetime.date.today()

maotai_data = ts.get_k_data(code='600519', start='2010-01-01', end='2017-07-01')
  • 實時數據獲取
    ts.get_today_all()

金融學圖表

matplotlib 庫自帶的畫圖工具 matplotib.finance 可滿足我們的基本使用。

API鏈接:https://matplotlib.org/api/finance_api.html

常用的方法有:

  • candlestick2__ochl,candlestick2_ohlc
  • candlestick_ochl,candlestick_ohlc
  • plot_day_summary2_ochl,plot_day_summary2_ohlc
  • plot_day_summary_oclh,plot_day_summary_ohlc

案例

引入相應庫:

import tushare as ts
import matplotlib.pyplot as plt
import matplotlib
from matplotlib.dates import date2num, DateFormatter
import matplotlib.finance as mpf
import pandas as pd
%matplotlib inline

獲取數據:
stock_data = ts.get_k_data(code='600519', start='2017-01-01', end='2017-07-01')

candlestick2_ochl

fig, ax = plt.subplots(figsize=(12, 5))
mpf.candlestick2_ochl(ax, stock_data['open'], stock_data['close'], stock_data['high'], stock_data['low'], 
                      width=0.6, colorup='r', colordown='g')

ax.set_xticklabels(stock_data['date'])

plt.grid(True)
plt.xticks(rotation=45)
plt.ylabel('Stock Price')
plt.xlabel('Date')
plt.show()

candlestick_ochl

ochl_data = stock_data[['date', 'open', 'close', 'high', 'low']]
ochl_data['date'] = pd.to_datetime(ochl_data['date'])
ochl_data['date'] = ochl_data['date'].apply(date2num)

fig, ax = plt.subplots(figsize=(12, 5))
# 蠟燭圖
mpf.candlestick_ochl(ax, ochl_data.values, width=.6, colorup='r', colordown='g')
ax.xaxis_date()
ax.autoscale_view()
ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d'))

plt.grid(True)
plt.xticks(rotation=45)
plt.ylabel('Stock Price')
plt.xlabel('Date')
plt.show()

plot_day_summary2_ochl

fig, ax = plt.subplots(figsize=(12, 5))
mpf.plot_day_summary_ochl(ax, stock_data['open'], stock_data['close'], stock_data['high'], stock_data['low'], 
                           colorup='r', colordown='g')

ax.set_xticklabels(stock_data['date'])

plt.grid(True)
plt.xticks(rotation=45)
plt.ylabel('Stock Price')
plt.xlabel('Date')
plt.show()

plot_day_summary_oclh

oclh_data = stock_data[['date', 'open', 'close', 'low', 'high']]
oclh_data['date'] = pd.to_datetime(oclh_data['date'])
oclh_data['date'] = oclh_data['date'].apply(date2num)

fig, ax = plt.subplots(figsize=(12, 5))
mpf.plot_day_summary_oclh(ax, oclh_data.values, colorup='r', colordown='g')

ax.xaxis_date()
ax.autoscale_view()
ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d'))

plt.grid(True)
plt.xticks(rotation=45)
plt.ylabel('Stock Price')
plt.xlabel('Date')
plt.show()



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM