• 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()
    


  • 相关阅读:
    Pycharm Debug调试心得
    看了一些东西,发现一些用css实现一些东西的小技巧就记录下来
    使用js创建10*10方块
    用JS获取窗口和元素的大小
    jQuery笔记
    DOM学习中的小笔记
    常用的sql语句
    C#比较两个字符串的相似度【转】
    .net Core学习笔记之MemoryCache
    初学nodejs之安装Express中遇到的问题: error: option `-v, --view <engine>' argument missing
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/11405244.html
Copyright © 2020-2023  润新知