问题描述
我有两个不同的日期,我想知道它们之间在 seconds 之间的差异。
我的数据:
id date1 date2 date3
1 2017-03-03T02:38:30.544000 2017-03-03T02:30:21 2017-03-03T02:45:21
我想在数据框中添加两列:
date_first_sec= date1-date2
date_last_sec= date3-date2
我的代码:
import datetime as dt
df.date1= dt.datetime(df.date1)
df.date2= dt.datetime(df.date2)
df.date3= dt.datetime(df.date3)
df['date_first_sec']= (df.date1- df.date2).total_seconds()
df['date_last_sec']= (df.date3- df.date2).total_seconds()
这是错误:
TypeError: cannot convert the series to <class 'int'>
解决方法
使用OldApi
例如:
.dt.total_seconds()
输出:
df = pd.DataFrame([{"date1": "2017-03-03T02:38:30.544000","date2":"2017-03-03T02:30:21",'date3': "2017-03-03T02:45:21"}])
df.date1= pd.to_datetime(df.date1)
df.date2= pd.to_datetime(df.date2)
df.date3= pd.to_datetime(df.date3)
df['date_first_sec']= (df.date1 - df.date2).dt.total_seconds()
df['date_last_sec']= (df.date3 - df.date2).dt.total_seconds()
print(df)