我有一个带有'label'列和'value'列的pandas数据帧。我的问题是如何在具有相同标签的前导移动窗口中获得中值/最大/最小值?
EG
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)
。
有谁可以给我一些关于这个案子的建议或例子?
使用iloc []和groupby(),我试试这个
df.iloc[1:5,:].groupby('label')['value'].median().loc[1]