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

Pandas如何从指定索引开始将后续多行求和合并为单行

Pandas指定行求和替换原多行实现方案

需求说明

针对11行的DataFrame,保留前3行内容,将第4行至第11行的数值列求和生成1行新数据,替换原有的4-11行,最终得到4行的结构化结果。

原有代码问题

你之前的拆分拼接思路逻辑是可行的,未达到预期有两个核心原因:

  • 未提前生成4-11行的求和结果行,拼接时缺失核心汇总数据
  • 未注意Pandas默认位置索引是0开始计数:日常从1开始数的第4行,对应iloc位置索引为3,第4-11行对应位置索引范围是3~10,原代码删除的索引范围和实际目标行不匹配

可直接运行的实现代码

注意:以下代码默认行号从1开始计数,和你描述的第4-11行对齐,使用iloc按行位置操作,不会受自定义行索引影响

方法1:沿用拆分拼接思路的修正版

import pandas as pd

# 提取前3行(对应1计数的1-3行)
keep_part = pivot_rank_famille.iloc[:3].copy()

# 计算4-11行的数值列求和,转换为单行DataFrame格式
sum_part = pivot_rank_famille.iloc[3:11].sum(numeric_only=True).to_frame().T
# 如需给汇总行设置名称,可取消下一行注释修改
# sum_part.index = ["合计"]

# 拼接两部分得到最终结果
pivot_rank_famille_regroup = pd.concat([keep_part, sum_part], axis=0)

方法2:直接修改删行的简洁写法

# 将求和结果直接赋值到第4行的位置
pivot_rank_famille.iloc[3] = pivot_rank_famille.iloc[3:11].sum(numeric_only=True)
# 删除原第5-11行,重置索引得到最终结果
pivot_rank_famille_regroup = pivot_rank_famille.drop(index=range(4, 11), axis=0).reset_index(drop=True)

注意事项

操作时优先使用iloc按行位置切片选取数据,不要直接用索引值删行,避免自定义索引值和行实际位置不匹配导致删错、算错数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:24:09