这段程序使用 yfinance 库获取指定日期范围内的指定股票价格数据,并将其转换为 Pandas 数据框,最后将数据框导出到 Excel 文件。

程序中使用了 yf.download() 函数获取股票数据,并将数据存储到 stock_data 变量中。随后使用 pd.DataFrame() 函数将数据转换为 Pandas 数据框,并将其存储到 df 变量中。最后使用 df.to_excel() 函数将数据框导出到 Excel 文件中。

需要注意的一点是,如果指定的日期范围内没有交易日,则数据框将为空。另外,该程序中的 Excel 文件名是根据股票代码、开始日期和结束日期自动生成的,如果多次运行程序并使用相同的参数,将会生成多个相同名称的文件,这可能会导致混淆。

为了避免重复文件名,可以考虑在文件名中添加随机数或时间戳。此外,可以添加判断语句,在数据框为空时提示用户,并停止程序运行。

以下是优化后的代码:

import yfinance as yf
import pandas as pd
import random
import time

# 设置股票代码和日期范围
symbol = 'AAPL'
start_date = '2021-08-01'
end_date = '2021-08-31'

# 获取股票价格数据
stock_data = yf.download(symbol, start=start_date, end=end_date, interval='1h')

# 检查数据是否为空
if stock_data.empty:
    print('指定日期范围内没有交易日,数据框为空。')
else:
    # 将数据转换为数据框
    df = pd.DataFrame(stock_data)

    # 生成随机数或时间戳
    random_number = random.randint(1, 1000)
    timestamp = int(time.time())

    # 导出到 Excel 文件
    df.to_excel(symbol + '_' + start_date + '_' + end_date + '_' + str(random_number) + '_' + str(timestamp) + '.xlsx')

这段优化后的代码添加了随机数和时间戳到文件名中,避免了重复文件名问题。此外,还添加了判断语句,在数据框为空时提示用户,并停止程序运行。

Python YFinance 获取股票数据并导出到 Excel:代码分析与优化

原文地址: https://www.cveoy.top/t/topic/oHOl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录