如何将pandas DataFrame多重索引列转换为含股票代码列的单索引结构?
解决方法
你需要将多重列索引的宽表转换为按交易日+股票代码分组的长表,使用pandas内置的stack方法即可快速实现,在你现有代码的基础上追加以下代码即可:
# 交换列索引层级,将股票代码从第二层调整到第一层 relv_data = relv_data.swaplevel(axis=1) # 堆叠股票代码层,将其从列索引转为行索引 long_df = relv_data.stack(level=0) # 重置索引,将交易日期、股票代码转为普通列,同时得到单级列索引 long_df = long_df.reset_index().rename(columns={"level_1": "ticker"}) # 查看输出结果 print(long_df.head())
补充说明
- 转换后的数据每一行对应某一个交易日某一只股票的行情数据,单独的
ticker列存储对应股票代码,所有列均为单级索引,符合你预期的输出结构。 - 你当前代码中填写的苹果股票代码为
APPL,正确的代码为AAPL,修正后才能正常拉取苹果的行情数据。
内容的提问来源于stack exchange,提问作者Jacky
相关产品推荐
相关产品推荐

