在熊猫数据帧上滚动720分钟

时间:2019-03-23 12:36:39

标签: python python-3.x pandas time-series pandas-groupby

我有一个数据集,如下所示。想法是每隔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

1 个答案:

答案 0 :(得分:0)

好吧,我刚刚意识到我有一个时间间隔,尽管它工作正常。