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

如何在Pandas中获取每日最大Datetime对应的Duration值

实现代码

首先确保你的时间列已转换为Pandas datetime类型,以下提供两种常用实现方案:

方案1:排序后按日期去重(写法简洁易读)

import pandas as pd

# 示例数据构造,实际使用时替换为你自己的DataFrame即可
df = pd.DataFrame({
    'starttime': ['2021-07-17 03:30:00', '2021-07-17 07:30:00', '2021-07-18 03:30:00', '2021-07-18 07:40:00'],
    'Duartion': [1234, 498, 1700, 2185]
})
# 转换时间列为datetime格式,如果已经是datetime类型可跳过此步
df['starttime'] = pd.to_datetime(df['starttime'])

# 核心逻辑:按时间升序排序后,按日期去重,保留每组最后一条也就是时间最大的记录
res = df.sort_values('starttime').drop_duplicates(df['starttime'].dt.date, keep='last')

方案2:分组取最大值索引(适合自定义分组逻辑的场景)

# 按日期分组,取每组时间最大值对应的行索引
max_idx = df.groupby(df['starttime'].dt.date)['starttime'].idxmax()
# 按索引筛选行得到结果
res = df.loc[max_idx]

如果你实际使用的列名是问题开头提到的Datetime、Duration,把代码中对应的列名替换即可,两种方案输出结果都和你要求的预期结果一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:54:04