You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python yfinance多交易所基金数据:日期索引统一需求

问题

使用Python的yfinance库获取多只来自不同交易所(如.L、.SW)的ETF数据,设置的起止日期为:

start = '2002-01-01'
end = '2022-06-30'

拉取数据的代码如下:

assets = ['GOVT', 'IDNA.L', 'IMEU.L', 'EMMUSA.SW', 'EEM', 'IJPD.L', 'VCIT',
          'LQD', 'JNK', 'JNKE.L', 'IEF', 'IEI', 'SHY', 'TLH', 'IGIB',
          'IHYG.L', 'TIP', 'TLT']
assets.sort()
data = yf.download(assets, start = start, end = end)

目前返回数据的索引为日期+时间格式,单只工具无单日重复价格,需要将索引统一为纯日期格式,实现同日期各工具价格横向对齐。

解决方案

直接对返回数据的索引进行日期格式化处理即可,有两种常用方式:

  1. 将索引转换为日期对象(非DatetimeIndex类型)
import pandas as pd
import yfinance as yf

# 原拉取代码
start = '2002-01-01'
end = '2022-06-30'
assets = ['GOVT', 'IDNA.L', 'IMEU.L', 'EMMUSA.SW', 'EEM', 'IJPD.L', 'VCIT',
          'LQD', 'JNK', 'JNKE.L', 'IEF', 'IEI', 'SHY', 'TLH', 'IGIB',
          'IHYG.L', 'TIP', 'TLT']
assets.sort()
data = yf.download(assets, start=start, end=end)

# 转换索引为纯日期
data.index = data.index.date
  1. 保留DatetimeIndex类型但仅保留日期部分(推荐,后续时间序列操作更方便)
# 转换索引为仅含日期的DatetimeIndex
data.index = pd.to_datetime(data.index).floor('D')

处理后,所有ETF的价格数据会按自然日横向对齐,不同交易所的时区差异会被统一到日期维度,满足需求。

内容的提问来源于stack exchange,提问作者bebongtheshark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:25:17