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

如何在pandas多级索引DataFrame中对指定两行求和并新增自定义索引行

解决方案

核心原因

你遇到的报错本质是没有匹配多级行索引的赋值规则,以及求和后的数组维度和DataFrame结构不匹配。

正确实现代码

# 先选中指定的两行按列求和,sum方法会自动忽略NaN,得到的结果和原列索引结构完全匹配
sum_vals = df.loc[["energy_investment_solar", "energy_investment_wind"]].sum(axis=0)

# 新行的两级行索引用元组打包传入,直接赋值即可
df.loc[
    ("energy_investment_vre", "Investment|Energy Supply|Electricity|VRE"), 
    :
] = sum_vals

原报错原因说明

  • 直接赋值df.loc["energy_investment_vre"] = 求和结果报错:仅指定了第一级行索引,pandas会认为你要匹配该第一级索引下所有第二级索引赋值,但你只有一行数据,和列数不匹配
  • 两级索引分开写赋值报错:df.loc[a,b]的写法pandas会默认把a识别为行索引、b识别为列索引,不会把a、b当做两级行索引处理,因此报索引类型错误,两级行索引需要打包为元组作为loc的第一个参数
  • append报错:你用.values取出的是二维数组,和append要求的输入结构不匹配,且append方法已在pandas 2.0+版本中被弃用,不推荐使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:18:01