首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >最近值的Python百分位数与先前值的窗口

最近值的Python百分位数与先前值的窗口
EN

Stack Overflow用户
提问于 2018-06-28 04:10:47
回答 1查看 319关注 0票数 3

抱歉,我是一个新手,希望从R过渡过来!

可重现的数据示例;

df = pd.DataFrame(1.26 + np.random.rand(size)/100.0,
                  index=pd.date_range('20160101 09:00:00',
                                      periods=size,
                                      freq='60s'),
                  columns=['ATR20'])

我想在列ATR20中取一个值,并根据列ATR20的前n个值的滚动窗口计算其当前百分位数。

这就是我所得到的:

for n in range(1,len(df)):
print(sum(df.ATR20[n:n+20] > df.ATR20))

这会给出以下错误:

ValueError: Can only compare identically-labeled Series objects

我确信有一种更简单的方法可以用更简洁的语法来做这件事,但是我的搜索还没有找到足够接近的东西。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-28 04:23:10

我想这会得到你想要的。我使用了你的例子,数据框中只有10个元素,滚动窗口中有3个元素,这样粘贴到这里就会更短。

size = 10
df = pd.DataFrame(1.26 + np.random.rand(size)/100.0,
                  index=pd.date_range('20160101 09:00:00',
                                      periods=size,
                                      freq='60s'),
                  columns=['ATR20'])

#                         ATR20
# 2016-01-01 09:00:00  1.262522
# 2016-01-01 09:01:00  1.265116
# 2016-01-01 09:02:00  1.265051
# 2016-01-01 09:03:00  1.261109
# 2016-01-01 09:04:00  1.262699
# 2016-01-01 09:05:00  1.266710
# 2016-01-01 09:06:00  1.260186
# 2016-01-01 09:07:00  1.268001
# 2016-01-01 09:08:00  1.263227
# 2016-01-01 09:09:00  1.261331

您可以结合使用df.rollingapply将函数应用于滚动窗口。我想我在这里使用的计算方法或多或少就是你想要的:

window = 3
df.rolling(window).apply(lambda x: sum([x[-1] > i for i in x]) / (window - 1))

#                         ATR20
# 2016-01-01 09:00:00       NaN
# 2016-01-01 09:01:00       NaN
# 2016-01-01 09:02:00  0.263665
# 2016-01-01 09:03:00  0.000000
# 2016-01-01 09:04:00  0.263932
# 2016-01-01 09:05:00  0.527632
# 2016-01-01 09:06:00  0.000000
# 2016-01-01 09:07:00  0.527024
# 2016-01-01 09:08:00  0.263754
# 2016-01-01 09:09:00  0.000000
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51070679

复制
相关文章

相似问题

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