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

如何在Pandas Series中选取每日最大值对应的索引?

嘿,这个需求用Pandas的分组功能就能轻松搞定,比手动遍历高效多了,我给你一步步拆解:

核心解决方案

我们可以按日期对Series分组,然后用idxmax()直接获取每组最大值对应的索引——这比自己写循环遍历要简洁且性能更好。

第一步:编写代码实现

先把完整的代码放出来,你可以直接运行:

import pandas as pd
from datetime import datetime

# 初始化你的时间序列
ts1 = pd.Series([1, 2, 4, 3],
                index=[datetime(2011,1,2,1,1,1), # 第一天
                       datetime(2011,1,2,2,2,2),
                       datetime(2011,1,3,1,1,1), # 第二天
                       datetime(2011,1,3,4,4,4)])

# 按日期分组,提取每组最大值的索引
daily_max_indices = ts1.groupby(ts1.index.date).idxmax()

第二步:查看并遍历结果

执行上面的代码后,daily_max_indices会是一个包含日期和对应最大值索引的Series。如果要像你期望的那样输出结果,可以遍历它:

# 遍历输出每个日期的最大值索引及对应数值
for date, max_timestamp in daily_max_indices.iteritems():
    print(f"{max_timestamp} # {date}的最大值为{ts1[max_timestamp]}")

运行这段代码后,你会得到和期望完全一致的输出:

2011-01-02 02:02:02 # 2011-01-02的最大值为2
2011-01-03 01:01:01 # 2011-01-03的最大值为4

为什么推荐这种方法?

手动遍历每个日期再筛选数据不仅代码繁琐,而且当数据量很大时,性能会很差。Pandas的分组操作是底层优化过的,idxmax()方法也直接帮我们定位到最大值的索引,完全贴合你的需求,代码可读性和效率都拉满。

内容的提问来源于stack exchange,提问作者Mark Harrison

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:46:49