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

如何对被零值分隔的DataFrame各分段单独计算平均值等操作

实现步骤

核心思路是先给被零值分隔的每个非零分段分配唯一的分组ID,再按分组执行聚合计算,具体代码如下:

  1. 构造示例数据(可替换为你自己的DataFrame)
import pandas as pd

# 示例数据结构和你描述的场景一致
df = pd.DataFrame({
    'value': [0.762, 0.766, 0, 0.66, 1.37, 2.11, 2.29, 0, 1.1, 0.95, 0]
})
  1. 生成分组ID
    每遇到一个零值,分组编号自动+1,确保同一个非零分段的所有数据属于同一个分组:
df['group_id'] = df['value'].eq(0).cumsum()
  1. 按分组计算平均值(或其他操作)
    先过滤掉零值行,再按分组ID聚合,需要其他计算时替换mean()为对应的聚合函数即可(如sum()、max()、自定义函数等):
# 得到每个非零分段的平均值结果
seg_mean_result = df[df['value'] != 0].groupby('group_id')['value'].mean()

如果需要把分段平均值回填到原表的对应行,可以用transform方法:

df['seg_mean'] = df[df['value'] != 0].groupby('group_id')['value'].transform('mean')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:30:05