Роллинг за 720 минут на панде - PullRequest
1 голос
/ 23 марта 2019

У меня есть набор данных, как показано ниже.Идея состоит в том, чтобы смотреть каждые предыдущие 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

Так что я делаю =COUNTIF(Direction2:Direction721,"Pos") в Excel, чтобы вычислить столбец Положительный.Код, который я пробовал работать в течение 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 голосов
/ 23 марта 2019

Хорошо, я только что понял, что у меня были временные промежутки, и, хотя он отлично работает.

...