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

如何调整DataFrame多层列索引,合并重复年份列为按年分组结构?

解决方法

你可以通过对DataFrame的列多层索引进行排序来实现需求,核心是让同一年份下的所有子列聚集在一起,具体代码如下:

# 对列索引按「年份(第一层)→ 子列名(第二层)」的顺序排序
df_sorted = df.sort_index(axis=1, level=[0, 1])

原理说明:

你的原始DataFrame列索引的结构是:第一层为年份,但列是按子列名分组排列的(比如所有年份的PATIENTS列先排,再排所有年份的month列),第二层为子列名。通过sort_index指定按第一层(年份)优先排序,同一年份内再按第二层(子列名)排序,就能自动将同一个年份对应的所有子列(PATIENTS、month、diffs_24h等)聚合到该年份的层级下,形成你想要的列结构。

如果排序后子列的顺序不符合预期,还可以手动指定子列的排序优先级,示例如下:

# 自定义子列的顺序
custom_subcol_order = ['PATIENTS', 'month', 'diffs_24h', 'diffs_168h']
# 先按年份排序,再按自定义的子列顺序排序
df_sorted = df.sort_index(
    axis=1, 
    level=[0, 1], 
    key=lambda x: x.map({v:i for i,v in enumerate(custom_subcol_order)})
)

这样就能确保每个年份下的子列严格按照你指定的顺序排列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:40:35