You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取DataFrame中月度High最大值对应的原始日期

获取月度High最大值及对应原始日期的方法

你可以通过以下几种方式实现,同时得到每个月High最大值的原始发生日期和对应数值:

方法1:利用idxmax定位原始日期

idxmax会返回每个分组中High最大值对应的索引(即原始日期),再通过loc提取对应数据:

# 获取每个月High最大值的原始日期索引
max_date_indices = df.groupby(pd.Grouper(freq='M'))['High'].idxmax()

# 根据索引提取原始日期和对应High值
result = df.loc[max_date_indices, ['High']].reset_index()

# 重命名列名让结果更清晰
result.columns = ['原始日期', '月度High最大值']

# 可选:添加月度分组的月末日期列
result['月度'] = max_date_indices.index

方法2:用transform标记最大值行后筛选

先给每行标记其所在月份的High最大值,再筛选出等于最大值的行:

# 给每行添加所在月份的High最大值
df['月度High最大值'] = df.groupby(pd.Grouper(freq='M'))['High'].transform('max')

# 筛选出等于月度最大值的行,去重(避免同月多个相同最大值)
result = df[df['High'] == df['月度High最大值']][['High']].reset_index().drop_duplicates(subset='High', keep='first')

# 可选:添加月度分组的月末日期列
result['月度'] = pd.to_datetime(result['Date']).dt.to_period('M').dt.to_timestamp('M')

注意事项

  • 如果同一个月内有多个日期的High值等于当月最大值,idxmax会返回第一个出现的日期;drop_duplicates的keep参数可以设为'last'来取最后一个出现的日期,按需调整。

内容的提问来源于stack exchange,提问作者Lien Serolf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:03:22