如何在Pandas DataFrame中创建一个列来存储尾随高值?

kulphzqa  于 2023-01-01  发布在  其他
关注(0)|答案(1)|浏览(102)

考虑一个只有一个名为values的列的DataFrame。

data_dict = {values:[5,4,3,8,6,1,2,9,2,10]}
df = pd.DataFrame(data_dict)
display(df)

输出如下所示:

values
0   5
1   4
2   3
3   8
4   6
5   1
6   2
7   9
8   2
9   10

我想生成一个新列,它将具有前一列的尾随高位值。
预期输出:

values  trailing_high
0   5       5
1   4       5 
2   3       5
3   8       8
4   6       8
5   1       8
6   2       8
7   9       9
8   2       9
9   10      10

现在我使用for循环来迭代df. iterrows()并计算每一行的值,因此代码非常慢。
有人能分享矢量化方法来提高速度吗?

6yt4nkrj

6yt4nkrj1#

使用.cummax

df["trailing_high"] = df["values"].cummax()
print(df)

产出

values  trailing_high
0       5              5
1       4              5
2       3              5
3       8              8
4       6              8
5       1              8
6       2              8
7       9              9
8       2              9
9      10             10

相关问题