迄今为止数据框中某一列的最大值

3

你好,以下是数据框(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

然而,我总是收到窗口必须是整数的错误。有没有什么建议可以解决这个问题?

谢谢。


df.index 给出了一系列的索引,而不是单个值。Rolling 函数期望它的窗口大小是一个固定整数。 - Vishnudev Krishnadas
2个回答

1

您也可以使用 pd.Series.cummax() 代替滚动窗口:

print(df.temp.cummax())
0    10
1    23
2    23
5    24

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接