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

Pandas处理多层列:移除Adj Close保留股票代码列

解决两层列结构的DataFrame移除“Adj Close”层级问题

当使用yfinance等第三方库从Yahoo Finance获取股票数据时,返回的DataFrame通常带有多层列索引(MultiIndex)——第一层是行情指标(如Adj Close、Close),第二层是股票代码。要得到仅以股票代码为列名、值对应Adj Close的简易DataFrame,可参考以下实用方法:

方法1:直接选取Adj Close层级

这是最直观的方式,直接提取Adj Close对应的子数据集,此时列名会自动变为股票代码:

# 假设原数据存储在变量df中
adj_close_df = df['Adj Close']

方法2:用xs()精确指定层级提取

如果多层索引的顺序有变动,或需要更明确的层级控制,可使用xs()方法,通过level参数指定要提取的索引层级:

# axis=1表示操作列,level=0指定第一层索引为目标层级
adj_close_df = df.xs('Adj Close', axis=1, level=0)

验证结果

提取完成后,可通过以下代码确认列结构是否符合预期:

print(adj_close_df.columns)
# 输出示例:Index(['AAPL', 'MSFT', 'GOOG'], dtype='object')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:10:49