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
我正在尝试将 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