如何修改Python DataFrame列均值代码实现相邻两列滚动求均值
原代码逻辑说明
你提到的原代码实现非重叠列对求均值的逻辑可以拆解为以下步骤:
df.iloc[:,2:]:提取所有行、索引从2开始的列(即排除前2列)作为参与计算的目标列np.arange(len(target_cols.columns)):为目标列生成从0开始的连续整数索引,例如有4个目标列时得到序列[0,1,2,3]- 整数除法
//2+1后,序列变为[1,1,2,2],这个结果就是groupby的分组键,相同值的列会被分到同一组 - 按列维度(
axis=1)分组后求均值,最终通过add_prefix给结果列加上ColumnAVg前缀,得到ColumnAVg1、ColumnAVg2这类列名
重叠相邻列对求均值的修改代码
要实现第1&2、2&3、3&4...这类重叠相邻列对的均值计算,改用沿列轴的滑动窗口即可,修改后代码如下:
target_cols = df.iloc[:,2:] dfgrp = target_cols.rolling(window=2, axis=1).mean().dropna(axis=1).add_prefix('ColumnAVg')
代码效果说明
- 若目标列总数为N,最终会生成N-1个结果列,列名依次为
ColumnAVg1到ColumnAVg(N-1),和原输出格式完全一致 - 每个结果列依次对应相邻两个列的均值,完全符合你需要的重叠列对计算要求
内容的提问来源于stack exchange,提问作者SteveS
相关产品推荐
相关产品推荐

