如何按每10000行计算指定列平均值并存储至新列?
按固定行数分组计算平均值的解决方案
你需要的是固定每10000行一组,每组内所有行对应该组的平均值,而非滚动窗口的平均值。可以通过以下步骤实现:
- 给每行分配分组标签,每10000行归为同一组
- 按分组计算平均值,并将结果映射到组内的每一行
代码示例(索引为连续整数时)
# 给每行添加分组标识,前10000行是组0,接下来10000行是组1,以此类推 df['group'] = df.index // 10000 # 按分组计算col1的平均值,并用transform把结果填充到每行 df['Average'] = df.groupby('group')['col1'].transform('mean') # 可选:删除临时的group列 df.drop('group', axis=1, inplace=True)
代码示例(索引非连续整数时)
如果你的DataFrame索引不是从0开始的连续整数,用np.arange生成行序号来分组更稳妥:
import numpy as np # 按行的顺序生成分组标识,不受原索引影响 df['group'] = np.arange(len(df)) // 10000 df['Average'] = df.groupby('group')['col1'].transform('mean') df.drop('group', axis=1, inplace=True)
这样处理后,新列Average中每10000行的数值都是对应组的平均,完全符合你按固定行数分组计算的需求。
内容的提问来源于stack exchange,提问作者user_scc
相关产品推荐
相关产品推荐

