Pandas dataframe datetime to time then to seconds

后端 未结 2 1706
说谎
说谎 2020-12-10 23:14

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         


        
相关标签:
2条回答
  • 2020-12-10 23:21

    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
    
    0 讨论(0)
  • 2020-12-10 23:25

    I think you need timedeltas by to_timedelta with times created by split and selecting second lists 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 datetimes 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
    
    0 讨论(0)
提交回复
热议问题