使用pd.rolling_max时,如何在数据框中指定特定值作为窗口值?

时间:2016-06-23 16:58:08

标签: python pandas

列max应该是范围内的最大值。

if df['y'] >= 1: #then use y as the window...

目前正在使用:

df['max'] = None
df['max'][df['y']>1] = pd.rolling_max(df['y'], window = df['y']

结果是:

  

TypeError:无法将系列转换为' int'

    x    y    max
A   1    1
B   1    0
C   1    0
D   1    3

希望如此:

    x    y    max
A   1    1    1
B   1    0
C   1    0
D   1    3    3

帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

您所描述的内容并不是滚动窗口的最大值。如果是y 3D,那么您还需要在滚动窗口中包含2行。我想你只是在df.y >= 1之后的行中元素的最大值。在这种情况下:

df['max'] = df.loc[df.y >= 1].apply(max, axis=1)

print df

   x  y  max
A  1  1  1.0
B  1  0  NaN
C  1  0  NaN
D  1  3  3.0