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

如何用Pandas合并索引相差±1的相邻行并对指定列求和

实现相邻加油记录合并的方案

实现逻辑

通过给原始索引连续的记录分配相同分组标识,再按分组聚合的方式完成合并,步骤如下:

  • 生成连续索引分组标签:当前记录原始索引与上一条记录原始索引差值不为1时,开启新分组
  • 按分组聚合:每组保留最后一行的索引、事件、时间、油位、里程字段值,对差值字段求和

代码修改

你只需要在现有代码的df1filt.reset_index(level=0, inplace=True)之后,调用askopenfilename获取保存路径之前,加入以下代码即可:

# 生成连续相邻索引的分组标识
df1filt['group_id'] = (df1filt['index'].diff() != 1).cumsum()

# 按分组聚合实现合并
df_merged = df1filt.groupby('group_id').agg(
    # 保留每组最后一行的字段
    index = ('index', 'last'),
    Händelse = ('Händelse', 'last'),
    Tid = ('Tid', 'last'),
    `Bränslenivå (%)` = ('Bränslenivå (%)', 'last'),
    `Körda km (km)` = ('Körda km (km)', 'last'),
    # 差值字段求和
    `Difference (%)` = ('Difference (%)', 'sum')
).reset_index(drop=True)

提示:如果你的里程列实际名称与上述代码中的Körda km (km)不一致,替换为你DataFrame中对应的里程列名即可。
后续你可以直接将合并后的df_merged保存到Excel:

filepathname3 = askopenfilename()
df_merged.to_excel(filepathname3, index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:57:03