首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算一系列特定的恒定宽度列范围的平均值?

问如何计算一系列特定的恒定宽度列范围的平均值?
EN

Stack Overflow用户
提问于 2019-10-28 12:03:58
回答 1查看 57关注 0票数 2

我有一个熊猫1D DataFrame (列:浮,值:浮),如下所示:

代码语言:javascript
复制
    1.0     1.1     1.2     1.3     1.4     1.5     1.6     1.7     1.8
0   1.0     2.0     5.0     4.0     3.0     NaN     1.0     7.0     NaN

我想计算特定行范围的平均值。NaN应被视为0.0。例如,对于相对于整个列范围(1.0 - 1.2、1.3 - 1.5、1.6 - 1.9)的常数列范围,因此我想得到以下DataFrame:

代码语言:javascript
复制
    1.0     1.1     1.2     1.3     1.4     1.5     1.6     1.7     1.8
0   2.66    2.66    2.66    2.33    2.33    2.33    2.66    2.66    2.66

实现这一目标的最具表现力和内存感知的实现是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-28 12:08:07

如果希望每个列的每个值都有mean,那么将GroupBy.transform与axis='columns'一起使用,并按列的长度对np.arange进行整数除法,并将缺失的值替换为0:

代码语言:javascript
复制
df = df.fillna(0).groupby(np.arange(len(df.columns)) // 3, axis='columns').transform('mean')
print (df)
        1.0       1.1       1.2       1.3       1.4       1.5       1.6  \
0  2.666667  2.666667  2.666667  2.333333  2.333333  2.333333  2.666667   

        1.7       1.8  
0  2.666667  2.666667  

细节

代码语言:javascript
复制
print (np.arange(len(df.columns)))
[0 1 2 3 4 5 6 7 8]

print (np.arange(len(df.columns)) // 3)
[0 0 0 1 1 1 2 2 2]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58590632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档