嗨,他有以下数据框(df)
temp
0 10
1 23
2 12
5 24
我试图实现:
temp max_so_far
0 10 10
1 23 23
2 12 23
5 24 24
我正在尝试使用:
df['max_so_far'] = df.temp.rolling(window= df.index).max
df['max_so_far'] = df.temp.rolling(window= df.index.astype(int)).max
但是我总是得到一个错误,那就是窗口必须是整数。任何建议如何解决这个问题
谢谢
答案 0 :(得分:1)
您也可以使用pd.Series.cummax()
代替滚动窗口:
print(df.temp.cummax())
0 10
1 23
2 23
5 24
答案 1 :(得分:1)
以2
的身份尝试,然后添加fillna
:
df['max_so_far'] = df.temp.rolling(window= 2).max().fillna(df.temp[0])
除Jan的答案外,分配:
df['max_so_far']=df.temp.cummax()
两种情况:
print(df)
返回:
temp max_so_far
0 10 10.0
1 23 23.0
2 12 23.0
5 24 24.0