You need to enable JavaScript to run this app. 如何在Pandas中将datetime列按照四个指定时段分组
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中将datetime列按照四个指定时段分组

解决方案

你遇到的报错原因是Time_Interval列当前为字符串类型,只有datetime/ timedelta类型的序列才支持.dt访问器调用时间相关方法。完整实现流程如下:

1. 转换时间列并提取小时值

import pandas as pd

# 将字符串格式的时间转为datetime类型,提取小时值用于后续分箱
df['hour'] = pd.to_datetime(df['Time_Interval'], format='%H:%M:%S').dt.hour

2. 按小时分箱生成自定义分组

# 定义分箱边界和分组名称
bins = [0, 6, 12, 18, 24]
group_labels = ['12AM-06 AM', '06 AM-12PM', '12PM-18PM', '18PM-12AM']

# right=False设置区间为左闭右开,匹配边界时间的分组逻辑
df['time_group'] = pd.cut(
    df['hour'],
    bins=bins,
    labels=group_labels,
    right=False,
    include_lowest=True
)

# 不需要保留临时hour列可执行下行删除
# df.drop('hour', axis=1, inplace=True)

上述代码的分箱逻辑为左闭右开,完全匹配你需要的分组规则:

  • 00:00:00~05:59:59 归入12AM-06 AM
  • 06:00:00~11:59:59 归入06 AM-12PM
  • 12:00:00~17:59:59 归入12PM-18PM
  • 18:00:00~23:59:59 归入18PM-12AM

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 13:54:09