首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重新安排5分钟的时间

重新安排5分钟的时间
EN

Stack Overflow用户
提问于 2022-04-03 13:50:11
回答 1查看 107关注 0票数 0

问题

如何创建在熊猫中重绘5分钟但直到当前某一排的列,所以要么从目前的观察持续5分钟,或者5分钟间隔,但如果我在第3分钟重采样最后5或最后3,点是不重采样的未来。DataFrame是按日期时间排序的

例如,可以忽略前几行,因为5分钟还没有积累:

期望输出

代码语言:javascript
运行
复制
datetime    result  mean
3/1/2022 0:04   1   
3/1/2022 0:05   0   
3/1/2022 0:06   0   
3/1/2022 0:06   1   
3/1/2022 0:07   1   
3/1/2022 0:08   1   
3/1/2022 0:10   1   0.666666667
3/1/2022 0:11   1   0.833333333
3/1/2022 0:12   0   0.8
3/1/2022 0:13   0   0.666666667
3/1/2022 0:14   0   0.4
3/1/2022 0:17   0   0
3/1/2022 0:18   1   0.25
3/1/2022 0:19   1   0.5
3/1/2022 0:20   1   0.75
3/1/2022 0:21   1   0.8
3/1/2022 0:22   1   0.833333333
3/1/2022 0:23   1   1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-03 20:20:06

您需要使用在两个边界上都有闭间隔的rolling

代码语言:javascript
运行
复制
# ensure datetime type
df['datetime'] = pd.to_datetime(df['datetime'])

# compute the rolling mean
df['resample'] = df.rolling('5min', closed='both', on='datetime')['result'].mean()

如果在间隔小于5分钟时需要can,则可以隐藏以下值:

代码语言:javascript
运行
复制
df['resample2'] = (df.rolling('5min', closed='both', on='datetime')['result'].mean()
                     ​.where(df['datetime'].sub(df['datetime'].iloc[0]).gt('5min'))
                   )

输出:

代码语言:javascript
运行
复制
              datetime  result  resample  resample2
0  2022-03-01 00:04:00       1  1.000000        NaN
1  2022-03-01 00:05:00       0  0.500000        NaN
2  2022-03-01 00:06:00       0  0.333333        NaN
3  2022-03-01 00:06:00       1  0.500000        NaN
4  2022-03-01 00:07:00       1  0.600000        NaN
5  2022-03-01 00:08:00       1  0.666667        NaN
6  2022-03-01 00:10:00       1  0.666667   0.666667
7  2022-03-01 00:11:00       1  0.833333   0.833333
8  2022-03-01 00:12:00       0  0.800000   0.800000
9  2022-03-01 00:13:00       0  0.600000   0.600000
10 2022-03-01 00:14:00       0  0.400000   0.400000
11 2022-03-01 00:17:00       0  0.000000   0.000000
12 2022-03-01 00:18:00       1  0.250000   0.250000
13 2022-03-01 00:19:00       1  0.500000   0.500000
14 2022-03-01 00:20:00       1  0.750000   0.750000
15 2022-03-01 00:21:00       1  0.800000   0.800000
16 2022-03-01 00:22:00       1  0.833333   0.833333
17 2022-03-01 00:23:00       1  1.000000   1.000000
代码语言:javascript
运行
复制
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71726527

复制
相关文章

相似问题

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