如何仅提取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