如何仅提取格式为<head>
的{{1}}列的时间部分并将其转换为总秒数?
在这个示例中,我希望最终结果在几秒钟内为datetime64[ns]
,我们距离1900-01-01 00:32:59
正好是(32 * 60 + 59)秒。
答案 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