1

如何仅提取datetime64[ns]格式化列的时间部分1900-01-01 00:32:59并将其转换为总秒数?

在这个例子中,我希望最终结果以1979秒为单位,我们正好是 (32*60 + 59) 秒1900-01-01 00:00:00

4

1 回答 1

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
于 2017-05-22T05:00:24.037 回答