一、什麼是Pandas時間差timedelta?
在Pandas中,timedelta是指兩個時間值之間的差值。
一般情況下,Pandas自動推斷時間差單位,可以是天、小時、分鐘、秒、毫秒、微秒、納秒。
timedelta是由兩個datetime之間的差來表示的,datetime可以是Series或DataFrame中的一組值。
二、Pandas時間差的創建
可以通過直接進行時間差運算創建時間差對象:
import pandas as pd from datetime import datetime t1 = datetime(2021, 6, 10) t2 = datetime(2021, 6, 12) delta = t2 - t1 print(delta)
輸出結果為:
2 days, 0:00:00
也可以使用Pandas的Timedelta函數來創建時間差對象:
import pandas as pd delta = pd.Timedelta('2 days 12 hours 5 minutes 10 seconds') print(delta)
輸出結果為:
2 days 12:05:10
三、Pandas時間差的運算
Pandas時間差支持加、減、乘、除等運算符的操作。
在Series或DataFrame上進行時間差的運算,會自動對每個元素進行運算:
import pandas as pd data = pd.DataFrame({'date1': pd.date_range('2022-01-01', periods=3), 'date2': pd.date_range('2022-01-04', periods=3)}) data['timedelta'] = data['date1'] - data['date2'] print(data)
輸出結果為:
date1 date2 timedelta
0 2022-01-01 2022-01-04 -3 days
1 2022-01-02 2022-01-05 -3 days
2 2022-01-03 2022-01-06 -3 days
也可以對時間差對象進行加、減、乘、除的運算:
import pandas as pd delta1 = pd.Timedelta('2 days 12 hours 5 minutes 10 seconds') delta2 = pd.Timedelta('1 day 10 hours') print(delta1 + delta2) # 加法運算 print(delta1 - delta2) # 減法運算 print(delta1 * 2) # 乘法運算 print(delta1 / 2) # 除法運算
輸出結果為:
3 days 22:05:10
1 days 2:05:10
5 days 0:10:20
1 days 6:02:35
四、Pandas時間差的屬性和方法
Pandas時間差對象有許多有用的屬性和方法。
1)屬性:
- days: 返回時間差中天的數量。
- seconds: 返回時間差中秒的數量(去除天后的秒數)。
- microseconds: 返回時間差中微秒的數量(去除天和秒後的微秒數)。
- nanoseconds: 返回時間差中納秒的數量(去除天、秒和微秒後的納秒數)。
2)方法:
- floor(單位): 對時間差對象的各個時間數值向下取整。
- ceil(單位): 對時間差對象的各個時間數值向上取整。
- round(單位): 對時間差對象的各個時間數值四捨五入取整。
以seconds為例:
import pandas as pd delta = pd.Timedelta('2 days 12 hours 5 minutes 10 seconds') print(delta.seconds) # 返回除天數外的秒數 print(delta.floor('hours')) # hours向下取整,返回2 days 12:00:00 print(delta.ceil('days')) # days向上取整,返回3 days print(delta.round('minutes')) # minutes四捨五入,返回2 days 12:05:00
輸出結果為:
43510
2 days 12:00:00
3 days
2 days 12:05:00
總結
Pandas的timedelta可以方便地對時間差進行運算和轉換,對於時間序列數據的分析和處理非常有用。
在實際的工作中,我們可以利用timedelta來計算時間差、增加或減少日期等操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301792.html