pd.to_timedelta() 將參數轉換為timedelta計算時間差


pd.to_timedelta

將參數轉換為timedelta,Timedelta在pandas中是一個表示兩個datetime值之間的差(如日,秒和微妙)的類型,2個Datetime數據運算相減得出的結果就是一個Timedelta數據類型

pandas.to_timedelta(arg, unit=None, errors='raise')

參數:

  • arg:str, timedelta, list-like or Series,要轉換為timedelta的數據
  • unit:str, optional,可選,表示數字arg的arg單位。默認為"ns",在版本1.1.0中更改:arg上下文字符串和 時不能指定errors="raise"

‘W’
‘D’ / ‘days’ / ‘day’
‘hours’ / ‘hour’ / ‘hr’ / ‘h’
‘m’ / ‘minute’ / ‘min’ / ‘minutes’ / ‘T’
‘S’ / ‘seconds’ / ‘sec’ / ‘second’
‘ms’ / ‘milliseconds’ / ‘millisecond’ / ‘milli’ / ‘millis’ / ‘L’
‘us’ / ‘microseconds’ / ‘microsecond’ / ‘micro’ / ‘micros’ / ‘U’
‘ns’ / ‘nanoseconds’ / ‘nano’ / ‘nanos’ / ‘nanosecond’ / ‘N’

  • errors:{‘ignore’, ‘raise’, ‘coerce’}, default ‘raise’,

如果為“ raise”,則無效的解析將引發異常。
如果為“強制”,則將無效解析設置為NaT。
如果為“ ignore”,則無效的解析將返回輸入。

返回:

timedelta64 or numpy.array of timedelta64

例子

將單個字符串解析為Timedelta

pd.to_timedelta('1 days 06:05:01.00003')
#Timedelta('1 days 06:05:01.000030')
pd.to_timedelta('15.5us')
#Timedelta('0 days 00:00:00.000015500')

解析字符串列表或數組

pd.to_timedelta(['1 days 06:05:01.00003', '15.5us', 'nan'])
#TimedeltaIndex(['1 days 06:05:01.000030', '0 days #00:00:00.000015500', NaT],
#              dtype='timedelta64[ns]', freq=None)

通過指定unit關鍵字參數來轉換數字

pd.to_timedelta(np.arange(5), unit='s')
'''
TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02',
                '0 days 00:00:03', '0 days 00:00:04'],
               dtype='timedelta64[ns]', freq=None)
'''
pd.to_timedelta(np.arange(5), unit='d')
'''
TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'],
               dtype='timedelta64[ns]', freq=None)
'''

 

時間特征處理

#時間特征處理
timedelta = pd.to_timedelta(df['Time'], unit='s') df['Minute'] = (timedelta.dt.components.minutes).astype(int) df['Hour'] = (timedelta.dt.components.hours).astype(int)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM