首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算有序排序元素之间的平均值

如何计算有序排序元素之间的平均值
EN

Stack Overflow用户
提问于 2020-04-06 17:22:12
回答 4查看 56关注 0票数 0

我有一个dataframe,并且我需要计算序列元素之间的平均值(time_ref)

(表示按time_ref列排序后,相同f_idx中的元素之间)。

我想按f_idx分组并打印结果

例如:

代码语言:javascript
运行
复制
   f_idx  time_ref
0    f1    5
1    f2    7
2    f3    2
3    f2    4
4    f1    1
5    f1    9
6    f2    8

预期输出:

代码语言:javascript
运行
复制
   f_idx  res_mean
0    f1    mean((5-1), (9-5))
1    f2    mean((7-4), (8-7))
2    f3    Nan  (just one element, so there is not diff)

我该怎么做呢?

EN

回答 4

Stack Overflow用户

发布于 2020-04-06 17:36:44

这是一种使用unstack的方法,在axis=1上使用df.diff,在axis=1上使用df.mean

代码语言:javascript
运行
复制
df = df.sort_values('time_ref')
s = df.groupby('f_idx').cumcount()

out =( df.set_index(['f_idx',s])['time_ref'].unstack().diff(axis=1).mean(1)
      .reset_index(name='output'))

代码语言:javascript
运行
复制
print(out)

  f_idx  output
0    f1     4.0
1    f2     2.0
2    f3     NaN
票数 1
EN

Stack Overflow用户

发布于 2020-04-06 20:30:13

首先按两列对值进行排序,然后使用Series.diffmean按lambda函数聚合

代码语言:javascript
运行
复制
df1 = df.sort_values(['f_idx','time_ref'], ascending=[True,False])

df2 = (df1.groupby('f_idx')['time_ref'].agg(lambda x: x.diff(-1).mean())
          .reset_index(name='res_mean'))

print (df2)
  f_idx  res_mean
0    f1       4.0
1    f2       2.0
2    f3       NaN
票数 1
EN

Stack Overflow用户

发布于 2020-04-06 17:35:34

您可以使用groupby两次:

代码语言:javascript
运行
复制
df = (df
      .sort_values(['f_idx','time_ref'], ascending=[True,False])
      .groupby('f_idx')
      ['time_ref']
      .rolling(2)                                  # Take every 2 items
      .apply(lambda x: x.iloc[0] - x.iloc[1])      # Get the difference
      .groupby('f_idx')
      .mean()                                      # Get the mean
      .rename('res_mean')
      .to_frame())

您想要的结果:

代码语言:javascript
运行
复制
f_idx   res_mean
f1  4.0
f2  2.0
f3  NaN
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61056581

复制
相关文章

相似问题

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