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

如何将yfinance导入的DataFrame转换为多级索引DataFrame

长格式DataFrame转多级索引宽格式实现方案

前置说明

默认df_long包含日期、股票代码两类维度列,以及开盘价、收盘价、成交量等行情指标列,可根据实际字段名调整代码参数。

实现代码

方法1:pivot直接转换

import pandas as pd

df_wide = df_long.pivot(
    index="date",
    columns="ticker",
    values=["Open", "High", "Low", "Close", "Volume"]
)
# 可选操作:交换列层级顺序,将股票代码放在列索引第一级,匹配yfinance原生多标的返回格式
df_wide = df_wide.swaplevel(axis=1).sort_index(axis=1)

方法2:set_index + unstack 转换(适配更复杂场景)

# 先将日期、股票代码设为多级行索引,再将股票代码层级转移到列维度
df_wide = df_long.set_index(["date", "ticker"]).unstack(level="ticker")
# 支持同方法1调整列层级顺序
df_wide = df_wide.swaplevel(axis=1).sort_index(axis=1)

验证操作

  • 执行print(df_wide.columns)查看列的多级索引结构
  • 执行print(df_wide.index)确认行索引为日期格式

注意事项

  • 若df_long列名与示例不一致,将代码中date、ticker以及行情指标字段替换为实际列名即可
  • 转换后若存在缺失值,可追加.fillna()方法自定义填充规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 08:54:03