【问题标题】:Pandas & Timeseries: Get last date for max rolling windowPandas & Timeseries:获取最大滚动窗口的最后日期
【发布时间】:2021-10-04 12:09:03
【问题描述】:

我有一个基于时间序列的数据集,其中包含股票价格数据。我能够计算过去 x 天(例如:60 天)内的最高价格。当这个最高价多次出现时,我想知道这个最高价出现的最晚日期。

所以要计算最高价格,我已经有了以下代码:

df_shift['High'].shift(1).rolling(60).max()

我将如何获取此价格发生的日期值。如果是多行,则获取最新日期。

我的数据框由以下列组成:

日期, 打开, 高的, 低的, 关, 音量

谢谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    试试:

    df['last_max'] = df['High'].rolling(60).apply(lambda x: x[::-1].idxmax()).shift(1)
    df['last_max_date'] = df['last_max'].apply(lambda x: df['date'].loc[x] if not pd.isnull(x) else x)
    df.drop(columns=['last_max'], axis=1, inplace=True)
    

    【讨论】:

      猜你喜欢
      • 2018-08-08
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 2013-01-27
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多