如何在给定仅具有小时分钟秒格式的列的情况下返回总时间(以秒为单位)

Ale*_*lex 0 python time date seconds pandas

我有一个 pandas DataFrame,其中有一列格式为 00:00:00(小时、分钟、秒)。

import pandas as pd

# sample dataframe
df = pd.DataFrame({'Time': ['00:01:00', '00:00:30', '00:01:30', '00:00:10']})

       Time
0  00:01:00
1  00:00:30
2  00:01:30
3  00:00:10
Run Code Online (Sandbox Code Playgroud)

我需要创建一个包含总秒数的列。我怎样才能实现这个目标?

       Time  Time in secs
0  00:01:00          60.0
1  00:00:30          30.0
2  00:01:30          90.0
3  00:00:10          10.0
Run Code Online (Sandbox Code Playgroud)

我试过:

df['Time'] = pd.to_datetime(df['Time'], format='%H:%M:%S')
Run Code Online (Sandbox Code Playgroud)

但这会导致以下结果,与预期输出不符。

       Time        Time in secs
0  00:01:00 1900-01-01 00:01:00
1  00:00:30 1900-01-01 00:00:30
2  00:01:30 1900-01-01 00:01:30
3  00:00:10 1900-01-01 00:00:10
Run Code Online (Sandbox Code Playgroud)

ALo*_*llz 7

您没有日期,因此最容易使用Timedelta,并且您的格式完全符合要求。这些正是您想要的属性:total_seconds

pd.to_timedelta(df.Time).dt.total_seconds()
#0    60.0
#1    30.0
#2    90.0
#3    10.0
#Name: Time, dtype: float64
Run Code Online (Sandbox Code Playgroud)