Как получить среднее значение в ведущем движущемся окне с той же меткой

#python #pandas

#python #pandas

Вопрос:

У меня есть фрейм данных pandas со столбцом ‘label’ и столбцом ‘value’. Мой вопрос в том, как я могу получить среднее / максимальное / минимальное значение в переднем движущемся окне с той же меткой?

например

 df = Dataframe([[1,1],[1,2],[0,3],[1,4],[0,5],[1,6],[1,7]],columns=['label','value'])

label   |   value
1       |   1
1       |   2
0       |   3
1       |   4
0       |   5
1       |   6
1       |   7
  

для КАЖДОЙ строки n я хочу получить медиану от строки n-5 до строки n-2 с той же меткой.

например, для последней строки [1,7] я сначала выбираю строки [[1,2],[0,3],[1,4],[0,5]] , затем остаюсь [[1,2],[1,4]] , поскольку все они имеют метки '1' , и, наконец, вычисляю median(2,4)/max(2,4)/min(2,4) .

Кто-нибудь может дать мне несколько предложений или примеров для этого случая?

Ответ №1:

Используя iloc[] и groupby(), я пытаюсь это

 df.iloc[1:5,:].groupby('label')['value'].median().loc[1]
  

Комментарии:

1. Ну, я хочу получить медиану для каждой строки, больше похожую на rolling().median(). Но в вашем ответе указан номер строки от 1 до 5.