Python:yfinance获取股票信息

本文介绍了如何利用Python的yfinance库获取股票信息,并将数据存储到MySQL数据库中,包括安装yfinance、获取股票数据及数据库操作的步骤。
摘要由CSDN通过智能技术生成

Python:yfinance获取股票信息

安装yfinance

pip3 install yfinance

stock.py

获取股票信息

#!/usr/local/bin/python3

# @Time    : 2021/1/28 17:30
# @Author  : Paul Ding
# @File    : stock.py
# @Software: PyCharm

import pandas as pd
from database import *
import yfinance as yf
import time

def from_yahoo(ticker, start, end):
    if (ticker or start or end) is None: return

    start_time = time.time()
    print("Downloading {} from {} to {} ...".format(ticker, start, end))
    df = yf.download(ticker, start = start, end = end, progress = False)
    print("{} from {} to {} downloaded".format(ticker, start, end))
    csv = "./data/stock/{}.csv".format(ticker)
    df.to_csv(csv, index = True)
    print("{} written.".format(csv))
    end_time = time.time()

    print("{:.3f}s elapsed.\n".format(end_time - start_time))


def to_mysql(host, user, password, database, ticker):
    if (database or ticker) is None: return

    table_columns = {
   'DateTime': 'datetime',
                     'Open': 'DECIMAL(32,16)',
                     'High': 'DECIMAL(32,16)',
                     'Low': 'DECIMAL(32,16)',
                     'Close': 'DECIMAL(32,16)',
                     'Adj_Close': 'DECIMAL(32,16)',
                     'Volume': 'BIGINT',
                     }
    primary_key = 'DateTime'

    db = mysql(host=host, user=user, password=password)
    db.create_database(database)
    print("Processing {} ...".format(ticker))
    table = ticker
    csv = "./data/stock/{}.csv".format(ticker)
    df = pd.read_csv(csv, index_col = False)

    print("database: {}".format(database))
    print("table: {}".format(table))


    db.create_table(database, table, table_columns, primary_key)
    db.insert_items(database, table, [tuple(df.loc[idx].values) for idx in df.index])
    print()

if __name__ == "__main__":
    tickers = ['AAPL', 
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值