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

如何在Pandas DataFrame中获取每日最早和最晚时间点

解决方案

可以通过Pandas的分组与时间处理功能实现需求,具体步骤如下:

1. 确保日期列是datetime类型

如果你的date列还未转换为datetime格式,先执行类型转换:

import pandas as pd

data['date'] = pd.to_datetime(data['date'])

2. 按日期分组并计算每日极值时间

通过提取日期部分作为分组依据,对每组的时间字段取最早和最晚值,再格式化为时间字符串:

# 按日期分组,聚合计算每日最早、最晚时间
daily_stats = data.groupby(data['date'].dt.date).agg(
    earlier_hour=('date', lambda x: x.min().strftime('%H:%M:%S')),
    latest_hour=('date', lambda x: x.max().strftime('%H:%M:%S'))
).reset_index()

# 重命名日期列以匹配目标格式
daily_stats.rename(columns={'date': 'date_daily'}, inplace=True)

最终输出

运行上述代码后,daily_stats即为你需要的结果:

date_daily earlier_hour latest_hour
0  2018-01-01     03:00:00     08:00:00
1  2018-01-02     04:00:00     12:00:00
2  2018-01-03     05:00:00     17:00:00

补充说明

  • dt.date可快速从datetime对象中提取纯日期部分,作为分组的唯一标识
  • agg方法支持一次性对分组数据执行多维度聚合,这里用lambda函数将datetime对象格式化为仅含时分秒的字符串
  • reset_index()用于将分组后的索引转为普通列,匹配目标数据结构

内容的提问来源于stack exchange,提问作者João David de Freitas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 14:17:09