I have a dataframe. A column contains timestamps. I would like to remove dates and convert the time to seconds.
First I converted them to datetime:
I
Since you are converting it to datetime series, simply use basic maths to get the seconds i.e
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
I think you need timedelta
s by to_timedelta with times
created by split and selecting second list
s by str[1]
, then total_seconds and last cast to 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
Detail:
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]
Or if need seconds form datetime
s use dt.second:
df_time = pd.to_datetime(df["Timestamp"]).dt.second
print (df_time)
0 0
1 0
2 0
3 0
Name: Timestamp, dtype: int64