Python 更改时间格式

Python change time format

我正在尝试将 15:41:28:4330 或 hh:mm:ss:msmsmsms 形式的数据的时间格式更改为秒。

我浏览了一些 pandas 文档,但似乎无法在任何地方找到这种格式。

是否可以根据该时间格式逐行简单地计算秒数?

您需要获取时间增量并采用 total_seconds 方法获取午夜后的秒数。因此,您可以先解析为日期时间,然后减去默认日期(将自动添加)。例如:

#1 - 通过日期时间

import pandas as pd

df = pd.DataFrame({'time': ["15:41:28:4330"]})
df['time'] = pd.to_datetime(df['time'], format='%H:%M:%S:%f')
df['sec_after_mdnt'] = (df['time']-df['time'].dt.floor('d')).dt.total_seconds()

df
                     time  sec_after_mdnt
0 1900-01-01 15:41:28.433       56488.433

或者,您可以清理时间格式并直接解析为 timedelta:

#2 - str 清理 & to timedelta

df = pd.DataFrame({'time': ["15:41:28:4330"]})
# last separator must be a dot...
df['time'] = df['time'].str[::-1].str.replace(':', '.', n=1, regex=False).str[::-1]
df['sec_after_mdnt'] = pd.to_timedelta(df['time']).dt.total_seconds()

df
            time  sec_after_mdnt
0  15:41:28.4330       56488.433