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

合并多索引DataFrame并按索引组织的技术求助

问题:合并多车辆类别DataFrame并保留分层列索引

我需要合并来自不同Excel工作表的多个DataFrame,每个DataFrame对应一类车辆,示例数据如下:

In [28]: df_Cars_&_Light_Goods.head()
Out[28]:
                 Eastbound            Northbound            Southbound
                Left Thru Right     U-Turn Thru Right     U-Turn Left Thru
Start Time
07:00              0    0     0          0  475    17          0   43  761
07:15              0    0     0          0  558    19          1   43  834
07:30              0    0     0          0  577    28          0   37  833

In [32]: df_Buses.head()
Out[32]:
                 Eastbound            Northbound            Southbound
                Left Thru Right     U-Turn Thru Right     U-Turn Left Thru
Start Time
07:00              0    0     0          0   24     1          0    0   14
07:15              0    0     0          0   14     2          0    2   13
07:30              0    0     0          0   35     2          0    0   18

我先通过df = df.set_index(df.columns[0], drop = True)将第一列设为时间戳索引,然后用以下代码拼接:

df_comb = pd.concat([df_tcc[key] for key in keys], ignore_index=True, axis= 1, keys= keys).sort_index(axis = 1)

其中keys是所有DataFrame名称的列表(如df_Buses、df_Cars_&_Light_Goods等)。

但拼接后得到的结果混乱,原本的多索引列标签丢失,变成了简单编号,而我期望得到车辆类别→方向→转向类型的分层列结构。


解决方案

问题核心是pd.concat的参数设置错误:

  1. 移除ignore_index=True:这个参数会强制重置列的原有索引,直接导致原有的多列层级标签丢失。
  2. 确认所有DataFrame的行索引完全对齐(你的时间戳索引已经设置正确,这一步无需调整)。

修改后的拼接代码:

df_comb = pd.concat([df_tcc[key] for key in keys], axis=1, keys=keys).sort_index(axis=1)

执行后会得到三层列索引:

  • 第一层:车辆类别(如df_Buses、df_Cars_&_Light_Goods)
  • 第二层:行驶方向(如Eastbound、Northbound)
  • 第三层:转向类型(如Left、Thru、Right)

如果需要调整层级顺序(比如把方向放在最上层),可以用reorder_levels:

df_comb = df_comb.reorder_levels([1,2,0], axis=1).sort_index(axis=1)

另外,建议给keys设置更友好的名称(代替DataFrame变量名),提升索引可读性:

friendly_keys = ["Buses", "Cars & Light Goods"]
df_comb = pd.concat([df_tcc[key] for key in keys], axis=1, keys=friendly_keys).sort_index(axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:50:25