添加一个列,该列是表中lookback x row的最大值

2024-04-26 21:10:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我的原始数据帧如下:

   Date  Price
0     0    100
1     1     10
2     2     30
3     3     20
4     4     50

价格浮动。你知道吗

我需要能够添加一个列,这是“最大的最后x天”,包括今天 到原始数据帧。你知道吗

结果应该是 x=3

  Date   Price   Max_3Days
    0      100    N/A
    1      10     N/A
    2      30     100
    3      20     30
    4      50     50  

Tags: 原始数据date价格pricemax
1条回答
网友
1楼 · 发布于 2024-04-26 21:10:28

假设这是你的意见

df

   Date  Price
0     0    100
1     1     10
2     2     30
3     3     20
4     4     50

你可以用滚动最大值来完成

df.Price.rolling(3).max()

0      NaN
1      NaN
2    100.0
3     30.0
4     50.0
Name: Price, dtype: float64

或者,如果您真的希望使用N/A而不是nan,从而通过混合字符串和对象破坏性能,请在后面链接一个fillna调用。你知道吗

df.Price.rolling(3).max().fillna('N/A')

0    N/A
1    N/A
2    100
3     30
4     50
Name: Price, dtype: object

注意!我不经常提到旧版本的API,但是对于0.17及以下版本,有^{}-

pd.rolling_max(df.Price, window=3)

0      NaN
1      NaN
2    100.0
3     30.0
4     50.0
Name: Price, dtype: float64

在最新版本中已弃用,请改用pd.Series.Rolling.max。你知道吗

相关问题 更多 >