Python 从数据帧日期时间到时间再到秒

Python 从数据帧日期时间到时间再到秒,python,python-3.x,pandas,datetime,python-datetime,Python,Python 3.x,Pandas,Datetime,Python Datetime,我有一个数据帧。列包含时间戳。我想删除日期并将时间转换为秒 首先,我将它们转换为datetime: In: df_time = pd.to_datetime(df["Timestamp"]) Out: 0 2017-11-07 13:09:00 1 2017-11-07 13:11:00 2 2017-11-07 13:13:00 3 2017-11-07 13:15:00 dtype: datetime64[ns] 然后我删除了日期: In: df_time

我有一个数据帧。列包含时间戳。我想删除日期并将时间转换为秒

首先,我将它们转换为datetime:

In:
df_time = pd.to_datetime(df["Timestamp"])

Out:
0     2017-11-07 13:09:00
1     2017-11-07 13:11:00
2     2017-11-07 13:13:00
3     2017-11-07 13:15:00
dtype: datetime64[ns]
然后我删除了日期:

In:
df_time = pd.Series([val.time() for val in df_time])

Out:
0      13:09:00
1      13:11:00
2      13:13:00
3      13:15:00
4      13:17:00
dtype: object
但它们变成了对象,我并没有设法将它们转换成类似datetime的对象,以将它们转换成秒。我知道有一些相似的线索,我试过了


我提前感谢您的帮助。

我想您需要
timedelta
s by
times
由创建并选择第二个
list
s by
str[1]
,然后最后转换到
int

df_time = pd.to_timedelta(df["Timestamp"].str.split().str[1]).dt.total_seconds().astype(int)
print (df_time)
0    47340
1    47460
2    47580
3    47700
Name: Timestamp, dtype: int32
详情:

print (df["Timestamp"].str.split().str[1])
0    13:09:00
1    13:11:00
2    13:13:00
3    13:15:00
Name: Timestamp, dtype: object

print (pd.to_timedelta(df["Timestamp"].str.split().str[1]))
0   13:09:00
1   13:11:00
2   13:13:00
3   13:15:00
Name: Timestamp, dtype: timedelta64[ns]

或者,如果需要秒格式
datetime
s,请使用:


我想您需要
timedelta
s by和
times
由创建并选择第二个
list
s by
str[1]
,然后最后转换到
int

df_time = pd.to_timedelta(df["Timestamp"].str.split().str[1]).dt.total_seconds().astype(int)
print (df_time)
0    47340
1    47460
2    47580
3    47700
Name: Timestamp, dtype: int32
详情:

print (df["Timestamp"].str.split().str[1])
0    13:09:00
1    13:11:00
2    13:13:00
3    13:15:00
Name: Timestamp, dtype: object

print (pd.to_timedelta(df["Timestamp"].str.split().str[1]))
0   13:09:00
1   13:11:00
2   13:13:00
3   13:15:00
Name: Timestamp, dtype: timedelta64[ns]

或者,如果需要秒格式
datetime
s,请使用:


由于要将其转换为日期时间序列,只需使用基本数学计算秒数,即

df_time = pd.to_datetime(df["Timestamp"])

(df_time.dt.hour*60+df_time.dt.minute)*60 + df_time.dt.second

0    47340
1    47460
2    47580
3    47700
Name: Timestamp, dtype: int64

由于要将其转换为日期时间序列,只需使用基本数学计算秒数,即

df_time = pd.to_datetime(df["Timestamp"])

(df_time.dt.hour*60+df_time.dt.minute)*60 + df_time.dt.second

0    47340
1    47460
2    47580
3    47700
Name: Timestamp, dtype: int64

如果要减去持续时间,请使用下面的以秒为单位进行转换
(t会话['EndTime']-t会话['StartTime'])/np.timedelta64(1's')

如果要对持续时间进行减法,请使用下面的命令以秒为单位进行转换
(tsession['EndTime']-tsession['StartTime']/np.timedelta64(1,'s')

也许str对于datetime列来说太多了,问题是它不是datetime列,所以第一步是转换为datetime。也许str对于datetime列来说太多了,问题是它不是datetime列,所以第一步是转换为datetime。在我实现它之后,它给出了两个错误:1:TypeError:无法将类型的对象转换为datetimelike索引2:AttributeError:只能使用datetimelike值为Need
df[“Timestamp”]=pd.to_datetime(df[“Timestamp”])
的.dt访问器作为第一步;)在我实现它之后,它给出了两个错误:1:TypeError:无法将类型的对象转换为datetimelike索引2:AttributeError:只能使用datetimelike值为Need
df[“Timestamp”]=pd.to_datetime(df[“Timestamp”])