#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.