Pandalar: iki zaman arasındaki fark nasıl hesaplanır
Bir pandanın DataFrame’indeki iki zaman arasındaki farkı hesaplamak için aşağıdaki sözdizimini kullanabilirsiniz:
#calculate time difference in hours df[' hours_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (hours= 1 ) #calculate time difference in minutes df[' min_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (minutes= 1 ) #calculate time difference in seconds df[' sec_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (seconds= 1 )
Bu özel örnek, bazı Pandas DataFrame’in end_time ve start_time sütunlarındaki zamanlar arasındaki farkı hesaplar.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: pandalarda iki zaman arasındaki farkın hesaplanması
Aşağıdaki pandalara sahip olduğumuzu varsayalım DataFrame:
import pandas as pd #createDataFrame df=pd. DataFrame ({' start_time ':pd. date_range (start=' 5/25/2020 ', periods= 6 , freq=' 15min '), ' end_time ':pd. date_range (start=' 5/26/2020 ', periods= 6 , freq=' 30min ')}) #view DataFrame print (df) start_time end_time 0 2020-05-25 00:00:00 2020-05-26 00:00:00 1 2020-05-25 00:15:00 2020-05-26 00:30:00 2 2020-05-25 00:30:00 2020-05-26 01:00:00 3 2020-05-25 00:45:00 2020-05-26 01:30:00 4 2020-05-25 01:00:00 2020-05-26 02:00:00 5 2020-05-25 01:15:00 2020-05-26 02:30:00
Start_time ve end_time sütunları arasındaki zaman farkını saat, dakika ve saniye cinsinden hesaplamak için aşağıdaki sözdizimini kullanabiliriz:
#calculate time difference in hours df[' hours_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (hours= 1 ) #calculate time difference in minutes df[' min_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (minutes= 1 ) #calculate time difference in seconds df[' sec_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (seconds= 1 ) #view updated DataFrame print (df) start_time end_time hours_diff min_diff sec_diff 0 2020-05-25 00:00:00 2020-05-26 00:00:00 24.00 1440.0 86400.0 1 2020-05-25 00:15:00 2020-05-26 00:30:00 24.25 1455.0 87300.0 2 2020-05-25 00:30:00 2020-05-26 01:00:00 24.50 1470.0 88200.0 3 2020-05-25 00:45:00 2020-05-26 01:30:00 24.75 1485.0 89100.0 4 2020-05-25 01:00:00 2020-05-26 02:00:00 25.00 1500.0 90000.0 5 2020-05-25 01:15:00 2020-05-26 02:30:00 25.25 1515.0 90900.0
Yeni sütunlar, başlangıç_zamanı ve bitiş_zamanı sütunları arasındaki zaman farklarını farklı birimlerde içerir.
Örneğin ilk satırı düşünün:
- Başlangıç saati ile bitiş saati arasındaki fark 24 saattir .
- Başlangıç saati ile bitiş saati arasındaki fark 1440 dakikadır .
- Başlangıç zamanı ile bitiş zamanı arasındaki fark 86.400 saniyedir .
Bu örnekte start_time ve end_time sütunlarının zaten tarihsaat olarak biçimlendirildiğini unutmayın.
Zaman sütunlarınız şu anda dize olarak biçimlendirilmişse, saatler arasındaki farkı hesaplamadan önce her sütunu tarih saat biçimine dönüştürmek için pd.to_datetime komutunu kullanabilirsiniz:
#convert columns to datetime format
df[[' start_time ', ' end_time ']] = df[[' start_time ', ' end_time ]]. apply (pd. to_datetime )
Daha sonra sütunlar arasındaki zaman farklarını hesaplamaya devam edebilirsiniz, çünkü sütunların her ikisi de artık pandaların tanıyabileceği bir tarihsaat biçimindedir.
Ek kaynaklar
Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandalar’da tarih aralığı nasıl oluşturulur?
Pandalar’da tarihten ay nasıl çıkarılır
Pandalar’da zaman damgasını tarih/saat’e dönüştürme