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

如何在Python DataFrame中按时间秒数(ss)分组行?

按秒数(ss)分组Python DataFrame中的时间元素

没问题,我来帮你搞定这个需求!要把带有hh:mm:ss.zzz格式时间列的DataFrame按秒数(ss)分组,其实分几步就能实现,下面是具体的操作方案:

步骤1:确保时间列是datetime类型

首先得把字符串格式的时间转换成Python能识别的datetime类型,这样才能方便提取秒数。假设你的DataFrame叫df,时间列名为time_col,代码如下:

import pandas as pd

# 转换时间列为datetime类型,指定格式匹配hh:mm:ss.zzz
df['time_col'] = pd.to_datetime(df['time_col'], format='%H:%M:%S.%f')

# 如果担心有无效的时间格式,可以加上errors='coerce'把无效值转为NaT
# df['time_col'] = pd.to_datetime(df['time_col'], format='%H:%M:%S.%f', errors='coerce')

步骤2:提取整数秒数作为分组键

datetime类型的列有个dt.second属性,可以直接提取时间中的整数秒部分(也就是你要的ss部分,不管毫秒是多少,只要秒数相同就归为一组)。你可以选择新增一列存储秒数,或者直接用它来分组:

方式A:新增秒数列后分组

# 添加一个新列存储整数秒数
df['second'] = df['time_col'].dt.second

# 按秒数列分组
grouped = df.groupby('second')

方式B:直接在groupby中提取秒数(无需新增列)

# 直接用dt.second作为分组依据
grouped = df.groupby(df['time_col'].dt.second)

步骤3:使用分组结果

分组完成后,你可以遍历每个组查看数据,或者做聚合统计:

遍历所有分组

for second_value, group_data in grouped:
    print(f"=== 秒数为{second_value}的分组 ===")
    print(group_data)
    print("\n")

聚合统计示例(比如计算每个组的记录数)

# 统计每个秒数分组的记录数量
group_counts = grouped.size().reset_index(name='record_count')
print(group_counts)

这样就能轻松把所有秒数相同的元素分到一组啦,要是你还有其他扩展需求(比如按分+秒分组、处理毫秒精度的分组等),随时调整逻辑就好~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:27:57