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

批量下载多只股票代码时格式化pandas_datareader的DataFrame列名

解决pandas_datareader多层列索引转换问题

当使用pandas_datareader批量下载多只股票数据时,返回的DataFrame会生成包含**属性(Attributes)和股票代码(Symbols)**的多层列索引,使用起来不够直观。下面是自动化将其转换为「属性_股票代码」列名格式的方案:

完整实现代码

import pandas as pd
import pandas_datareader as pdr

# 定义目标股票代码列表
ticker = ['^GSPC', '^VIX']

# 从Yahoo Finance批量获取数据
df = pdr.DataReader(ticker, 'yahoo', start='1990-01-01', end='today')

# 自动拼接多层列索引为「属性_股票代码」格式
df.columns = df.columns.map('_'.join)

# 查看转换后的结果
print(df.head())

代码说明

  • 原DataFrame的列是MultiIndex类型,每个列标签是一个元组,格式为(属性名, 股票代码)
  • 使用df.columns.map('_'.join)可以遍历所有列标签元组,将元组内的两个字符串用下划线连接,自动生成新的列名(比如Open_^GSPC、Close_^VIX)
  • 整个过程完全自动化,不需要手动定义每一列,适配任意数量的股票代码和属性类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:03:40