在Pandas中将字符串数据类型持续时间转换为日期时间格式

时间:2017-05-22 04:36:41

标签: pandas datetime string-to-datetime

如何仅提取格式为<head>的{​​{1}}列的时间部分并将其转换为总秒数?

在这个示例中,我希望最终结果在几秒钟内为datetime64[ns],我们距离1900-01-01 00:32:59正好是(32 * 60 + 59)秒。

1 个答案:

答案 0 :(得分:0)

您可以使用to_timedelta + strftime + total_seconds + astype

df = pd.DataFrame({"date": ["1900-01-01 00:32:59"]})
df['date'] = pd.to_datetime(df['date'])
print (df)
                 date
0 1900-01-01 00:32:59

df['total'] = pd.to_timedelta(df['date'].dt.strftime("%H:%M:%S"))
                .dt.total_seconds().astype(int)
print (df)
                 date  total
0 1900-01-01 00:32:59   1979

floor + total_seconds + astype

df['total'] = (df['date'] - df['date'].dt.floor('D')).dt.total_seconds().astype(int)
print (df)
                 date  total
0 1900-01-01 00:32:59   1979

normalize + total_seconds + astype

df['total'] = (df['date'] - df['date'].dt.normalize()).dt.total_seconds().astype(int)
print (df)
                 date  total
0 1900-01-01 00:32:59   1979