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

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir