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

如何将按小时、分钟分组后的多索引合并为单一时间间隔索引?

解决方法

方法一:分组时直接生成时间字符串作为键

直接把login_time格式化为%H:%M:%S的字符串作为分组依据,一步得到符合目标格式的结果:

# 新增时间间隔字符串列
df2['time_interval'] = df2['login_time'].dt.strftime('%H:%M:%S')
# 按时间间隔分组求和并转为DataFrame
df_grouped = df2.groupby('time_interval')['counted'].sum().reset_index()

最终的df_grouped会包含两列:time_interval(格式如20:00:00)和counted(对应时段的总打卡次数)。

方法二:将已生成的多索引结果转换为单一时间索引

如果已经执行了你原本的分组代码,可通过索引映射把多索引合并为时间字符串:

# 你的原分组代码
df_grouped = df2.groupby([df2['login_time'].dt.hour, df2['login_time'].dt.minute])['counted'].sum()
# 把多索引的小时、分钟格式化为标准时间字符串
df_grouped.index = df_grouped.index.map(lambda x: f"{x[0]:02d}:{x[1]:02d}:00")
# 重置索引并修改列名
df_grouped = df_grouped.reset_index().rename(columns={'index': 'time_interval'})

用f"{x[0]:02d}:{x[1]:02d}:00"可以保证小时和分钟始终是两位数字(比如9点会显示为09:00:00),保持格式统一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:24:53