Первый и последний ряд подвижного окна: Pandas - PullRequest
1 голос
/ 31 марта 2020

Рассмотрим кадр данных следующим образом:

                           Value.       TileNo
tmstamp     
2016-10-31 20:00:00            0          1
2016-10-31 20:00:02            1          1
2016-10-31 20:00:04            2          2
2016-10-31 20:00:06          -60.         2
2016-10-31 20:00:08            4          2
2016-10-31 20:00:10            7          3
2016-10-31 20:00:12           -5          4
2016-10-31 20:00:14            0          4
2016-10-31 20:00:16            2          4
2016-10-31 20:00:18            9          4
2016-10-31 20:00:20           12          5

при применении скользящего окна следующим образом:

df.groupby('TileNo').rolling(window='4s')['Value.']

сформирует группы и затем внутри них windows размера 4s. Как можно получить доступ к первому и последнему значению каждого из этих скользящих windows? Текущая реализация использует лямбду следующим образом:

lst=[]
lst2 = []

df.groupby('TileNo').rolling(window='4s')['Value.'].apply(lambda x: lst.append(x.values[0]) or 0, raw=False)

df.groupby('TileNo').rolling(window='4s')['Value.'].apply(lambda x: lst2.append(x.values[-1]) or 0, raw=False)

, чтобы получить первое и последнее значения для каждого окна, но этот метод плохо масштабируется. Программа становится слишком медленной, когда размер фрейма данных увеличивается. Попытка получить начальное и конечное значение каждого окна, сохраненного как отдельный столбец в кадре данных.

...