如何仅提取datetime64[ns]
格式化列的时间部分1900-01-01 00:32:59
并将其转换为总秒数?
在这个例子中,我希望最终结果以1979
秒为单位,我们正好是 (32*60 + 59) 秒1900-01-01 00:00:00
。
如何仅提取datetime64[ns]
格式化列的时间部分1900-01-01 00:32:59
并将其转换为总秒数?
在这个例子中,我希望最终结果以1979
秒为单位,我们正好是 (32*60 + 59) 秒1900-01-01 00:00:00
。
您可以使用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