我有一个数据集,如下所示。想法是每隔720分钟查看一次,而不是查看我们在分组功能中使用的频率。我想看看过去720分钟内发生的积极变化。它并没有真正算出720分钟的正值总和。
row Timestamp Direction Positive Neg Nut
1 1/20/19 12:15
2 1/20/19 12:17 Nut
3 1/20/19 12:17 Neg
4 1/20/19 12:18 Neg
5 1/20/19 12:19 Pos
6 1/20/19 12:20 Neg
7 1/20/19 12:21 Neg
8 1/20/19 12:22 Pos
9 1/20/19 12:23 Neg
10 1/20/19 12:24 Pos
11 1/20/19 12:25 Neg
12 1/20/19 12:26 Neg
13 1/20/19 12:27 Neg
14 1/20/19 12:29 Neg
15 1/20/19 12:29 Nut
720 1/20/19 12:30 Pos 230(o2:o720) 284 205
721 1/20/19 12:31 Nut 230(o3:o721) 284 206
因此,我正在Excel中进行=COUNTIF(Direction2:Direction721,"Pos")
的操作以计算“正”列。我尝试工作60分钟和15分钟的代码,但是当我使用720分钟(即12小时)时,我没有得到想要的正数,负数。它给我的计数为0、1,依此类推,这是完全错误的。
尝试的代码:
cols = df['ChangeDirection'].dropna().unique()
for c in cols:
df[c] = df['ChangeDirection'].eq(c).rolling('720min').sum()
df.loc[:df.index[0] + pd.Timedelta(720*60, unit="s"), cols] = np.nan
答案 0 :(得分:0)
好吧,我刚刚意识到我有一个时间间隔,尽管它工作正常。