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

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

Stack Overflow用户
提问于 2019-10-29 10:14:54
回答 1查看 23关注 0票数 0

我有一个熊猫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。列范围没有常量列计数w.r.t。整个列范围(1.0 - 1.2、1.3 - 1.5、1.6 - 1.9),但列计数不同。整体列范围,例如1.0 - 1.3 (4 cols)、1.4 - 1.7 (4 cols)、1.8 (1列)。因此,我想得到以下DataFrame:

代码语言:javascript
复制
    1.0     1.1     1.2     1.3     1.4     1.5     1.6     1.7     1.8
0   3.00    3.00    3.00    3.00    2.75    2.75    2.75    2.75    0.00

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-29 10:24:29

方法1-楼层划分//

此方法假定要groupby的列范围相等,在本例中,每4列一列。

代码语言:javascript
复制
df.fillna(0).groupby(np.arange(df.shape[1]) // 4, axis='columns').transform('mean')

   1.0  1.1  1.2  1.3   1.4   1.5   1.6   1.7  1.8
0  3.0  3.0  3.0  3.0  2.75  2.75  2.75  2.75  0.0

方法2- np.digitize

在这里,我们可以创建列到groupby的海关groupby

代码语言:javascript
复制
bins = np.array([1, 1.4, 1.8])
grps = np.digitize(df.columns, bins)

df.fillna(0).groupby(grps, axis='columns').transform('mean')

   1.0  1.1  1.2  1.3   1.4   1.5   1.6   1.7  1.8
0  3.0  3.0  3.0  3.0  2.75  2.75  2.75  2.75  0.0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58605358

复制
相关文章

相似问题

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