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

疑问:pandas.concat接收字典输入且axis=1时为何呈现层级列结构?

pd.concat处理字典输入的特殊逻辑

当你给pd.concat传入字典时,不管axis参数设为0还是1,pandas都会把字典的键当作keys参数的值,自动给结果生成多层索引(MultiIndex),这就是你看到"z"变成上层列索引的原因。

为什么和预期不符?

你以为axis=1是单纯横向拼接列,但字典输入触发了额外的索引层级逻辑:

  • 字典的键(这里是"z")会成为对应轴上的上层索引
  • 原DataFrame的列(Name、Age)则作为下层索引

如果只是想做普通的横向拼接(不需要上层索引),别用字典传参,直接传列表:

z = pd.concat([df], axis=1)
# 单一个df的话这步多余,多个df的话直接写[df1, df2]即可

多字典项的例子更直观

比如传入包含两个DataFrame的字典:

df2 = df.copy()
z = pd.concat({"z": df, "w": df2}, axis=1)
print(z)

输出会是:

z        w    
   Name Age Name Age
0   tom  10  tom  10
1  nick  15 nick  15
2  juli  14 juli  14

能清楚看到字典的键如何对应多层列索引的上层。

核心总结

  • 字典输入pd.concat→自动用字典键生成对应轴的多层索引
  • 普通横向/纵向拼接→用列表传参,不要用字典

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 22:23:32