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

如何从pandas datetime中去除日期部分,仅保留秒级时间?

仅保留秒级时间的Pandas时序索引解决方案

当然可以创建只包含秒级时间(含高分辨率小数部分)的索引,完全不需要保留日期信息。这里给你两种实用的实现方式:

方法1:提取累计秒数作为数值索引

直接从datetime列中提取当天0点开始的累计秒数(包含毫秒、微秒等细分部分),用这个数值作为索引,既保留了2500Hz采样的高分辨率时序信息,又剔除了无关的日期。

示例代码:

import pandas as pd

# 假设你的数据有一列名为'datetime'的时序数据
df['total_seconds'] = df['datetime'].dt.total_seconds()
df.set_index('total_seconds', inplace=True)

dt.total_seconds()返回的是从当天00:00:00开始的累计秒数,对于2500Hz的数据,每行的秒数间隔正好是1/2500=0.0004秒,完美匹配你的采样精度。

方法2:使用TimedeltaIndex时间差索引

如果更偏好时间格式而非纯数值,可以将datetime转换为当天的时间差,用TimedeltaIndex作为索引,同样不带日期信息。

示例代码:

# 计算当前时间与当天0点的时间差
df['time_delta'] = df['datetime'] - df['datetime'].dt.normalize()
# 设置为时间差索引
df.set_index(pd.TimedeltaIndex(df['time_delta']), inplace=True)

dt.normalize()会把datetime的时间部分归零得到当天0点,两者相减得到的时间差会以类似00:01:23.456789的格式显示,但实际存储的是时间差数值,完全不包含日期。

小提醒

  • 如果你的数据涉及多天,这种仅保留当天秒数的索引会出现重复(不同日期的同一秒会被视为相同索引),但单天数据完全没问题。
  • 两种方式都支持Pandas的常规时序操作,比如按时间切片、重采样等,和datetime索引的使用逻辑一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:45:55