首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在pandas数据帧中找到滚动窗口内的平均差?

如何在pandas数据帧中找到滚动窗口内的平均差?
EN

Stack Overflow用户
提问于 2019-04-20 16:13:05
回答 1查看 152关注 0票数 1

我有以下数据帧:

代码语言:javascript
运行
复制
    value  year
0       9  2011
1       8  2011
2       7  2011
3       6  2011
4       5  2011
5       4  2011
6       3  2011
7       2  2011
8       8  2011
9       2  2011
10      0  2011
11      5  2011

我想要mean列,它获取value列中前7个值的平均差,例如,对于索引7,我想要:((9-8) + (8-7) + (7-6) + (6-5) + (5-4) + (4-3))/6

我现在不知道在df['value].rolling(7)之后该做什么。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-20 16:16:03

Series.shift中使用Series.diff,在mean中使用6滚动

代码语言:javascript
运行
复制
print (((9-8) + (8-7) + (7-6) + (6-5) + (5-4) + (4-3))/6)
1.0
print (((8-7) + (7-6) + (6-5) + (5-4) + (4-3) + (3-2))/6)
1.0
print (((7-6) + (6-5) + (5-4) + (4-3) + (3-2) + (2-8))/6)
-0.16666666666666666
print (((6-5) + (5-4) + (4-3) + (3-2) + (2-8) + (8-2))/6)
0.6666666666666666

df['new'] = df['value'].diff(-1).shift().rolling(6).mean()
print (df)
    value  year       new
0       9  2011       NaN
1       8  2011       NaN
2       7  2011       NaN
3       6  2011       NaN
4       5  2011       NaN
5       4  2011       NaN
6       3  2011  1.000000
7       2  2011  1.000000
8       8  2011 -0.166667
9       2  2011  0.666667
10      0  2011  0.833333
11      5  2011 -0.166667

如果需要滚动7

代码语言:javascript
运行
复制
print (((9-8) + (8-7) + (7-6) + (6-5) + (5-4) + (4-3) + (3-2))/7)
1.0
print (((8-7) + (7-6) + (6-5) + (5-4) + (4-3) + (3-2) + (2-8))/7)
0.0
print (((7-6) + (6-5) + (5-4) + (4-3) + (3-2) + (2-8  + (8-2)))/7)
0.7142857142857143
print (((6-5) + (5-4) + (4-3) + (3-2) + (2-8) + (8-2) + (2+0))/7)
0.8571428571428571

df['new'] = df['value'].diff(-1).shift().rolling(7).mean()
print (df)
    value  year       new
0       9  2011       NaN
1       8  2011       NaN
2       7  2011       NaN
3       6  2011       NaN
4       5  2011       NaN
5       4  2011       NaN
6       3  2011       NaN
7       2  2011  1.000000
8       8  2011  0.000000
9       2  2011  0.714286
10      0  2011  0.857143
11      5  2011  0.000000
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55771593

复制
相关文章

相似问题

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