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

使用Pandas合并多索引列名时如何避免数据丢失?

Pandas多索引列合并为单层列名的解决方案

问题描述

现有带多层列索引的DataFrame:

cn_positions    cn_positions    cn_positions
Date    Q1.22           Q1.23           Q1.24   
ID              
AA      73              87              104 
BB      0               0               13  
CC      0               20              62  
CC      0               0               11  

需要将多层列合并为单层列名(格式如cn_positions_Q1.22),目标格式:

cn_positions_Q1.22  cn_positions_Q1.23  cn_positions_Q1.24
ID              
AA      73                  87                  104 
BB      0                   0                   13  
CC      0                   20                  62  
CC      0                   0                   11

错误原因分析

你之前使用的pivot_table方案会对重复的ID行进行聚合(默认采用均值计算),导致原始多行数据被合并,从而丢失部分原始值。此外,unstack()操作打乱了原有列结构,进一步导致Date列的取值无法正确映射。

可行解决方案

直接对多层列索引进行字符串拼接,无需修改数据结构:

# 合并多层列名,用下划线连接
df.columns = ['_'.join(col) for col in df.columns]
# 可选:移除列索引的名称(消除原多层索引的标识)
df.columns.name = None

执行后即可得到目标格式的DataFrame,完整保留原始数据的行结构和所有值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 15:10:01