You need to enable JavaScript to run this app. Datetime索引滚动最大值DataFrame如何添加最大值首次出现日期列
优惠活动
大模型
产品
解决方案
定价
更多

Datetime索引滚动最大值DataFrame如何添加最大值首次出现日期列

问题解决:为滚动最大值DataFrame新增首次出现日期列

核心逻辑

  • 对每个时间点对应的滚动窗口,筛选出价格等于当前滚动最大值的所有记录,取最早一条的索引日期即可实现需求。

完整实现代码

import pandas as pd
import pandas_datareader.data as pdr

# 基础数据获取及滚动最大值计算(原有逻辑)
dfsp = pdr.get_data_yahoo('^GSPC', start='2011-01-01', end='2021-01-01')['Adj Close']
window = 2520
# 将滚动最大值Series转为DataFrame,方便后续新增列
Roll_Max = dfsp.rolling(window, min_periods=1).max().to_frame(name='rolling_max')

# 新增列:存储当前滚动最大值的首次出现日期
Roll_Max['first_occur_date'] = dfsp.rolling(window, min_periods=1).apply(
    lambda s: s[s == s.max()].index[0]
)

# 可选:将日期格式转为字符串,匹配你预期的"2011-01-03"输出效果
Roll_Max['first_occur_date'] = Roll_Max['first_occur_date'].dt.strftime('%Y-%m-%d')

效果说明

执行后Roll_Max的first_occur_date列就会存储对应滚动最大值的首次出现日期,第二行返回值为2011-01-03,完全符合预期。

内容的提问来源于stack exchange,提问作者Eesh Naik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 10:45:03