1. Zamanın yuvarlanması: niyə və nə üçün?
Dəqiqlik nə qədər vacib olsa da, elə hallar olur ki, zamanı yuvarlamaq lazım olur. Təsəvvür et: sən böyük həcmli məlumat yığınlarını analiz edirsən və hər saniyə dəyərlidir. Amma hesabatında saniyələrə nə ehtiyac var ki, dəqiqələr və ya hətta saatlar kifayətdir. Yuvarlama məlumatları sadələşdirməyə və onları daha aydın anlaşılan etməyə imkan yaradır, əsas məlumatları isə qoruyur.
Zamanın yuvarlanmasının istifadə nümunələri:
- Zaman sıralarının analizi: bir neçə həftə və ya ay ərzindəki məlumatları analiz edərkən sənin saniyələrə və ya hətta dəqiqələrə ehtiyacın yoxdur. Saatlar və ya günlər tam yetərlidir.
- Hesabatların yaradılması: hesabatlarını sadələşdir, zamanı ən yaxın saata və ya günə yuvarla ki, onlar daha oxunaqlı olsun.
- Performansın optimallaşdırılması: artıq məlumatların azaldılması analizi nəzərəçarpacaq dərəcədə sürətləndirə bilər.
2. Python-da zamanı necə yuvarlaqlaşdırmalı?
Python, zamanı yuvarlaqlaşdırmaq üçün çox sadə və əlverişli üsul təqdim edir. Məhz burada datetime
sinfi və onun metodlarını xatırlamalıyıq.
Dəqiqə və ya saata yuvarlaqlaşdırma
Başlamaq üçün zaman obyektini ən yaxın dəqiqəyə yuvarlaqlaşdıraq. Baxın:
from datetime import datetime, timedelta
# Təsvirdə, tarix və zaman var olduğunu fərz edək
now = datetime.now()
# Ən yaxın 10 dəqiqəyə yuvarlaqlaşdırma
def round_time_to_nearest_minute(dt, interval):
discard = timedelta(minutes=dt.minute % interval,
seconds=dt.second,
microseconds=dt.microsecond)
dt -= discard
if discard >= timedelta(minutes=interval/2):
dt += timedelta(minutes=interval)
return dt
rounded_time = round_time_to_nearest_minute(now, 10)
print(f"İndiki zaman: {now}")
print(f"Ən yaxın 10 dəqiqəyə yuvarlaqlaşdırılmış zaman: {rounded_time}")
Burada biz timedelta
metodundan intervalları idarə etmək üçün istifadə edirik. round_time_to_nearest_minute
funksiyası zamanı 10 dəqiqəlik ən yaxın intervala yuvarlaqlaşdırmağa imkan verir. İntervalı başqa bir rəqəmə dəyişə bilərsiniz.
Ən yaxın saata yuvarlaqlaşdırma
Bəs əgər sizə ən yaxın saata yuvarlaqlaşdırmaq lazımdırsa? Əvvəlki misalda olduğu kimi, lakin kiçik dəyişikliklərlə:
# Ən yaxın saata yuvarlaqlaşdırma
def round_time_to_nearest_hour(dt):
discard = timedelta(minutes=dt.minute % 60,
seconds=dt.second,
microseconds=dt.microsecond)
dt -= discard
if discard >= timedelta(minutes=30):
dt += timedelta(hours=1)
return dt
rounded_hour = round_time_to_nearest_hour(now)
print(f"Ən yaxın saata yuvarlaqlaşdırılmış zaman: {rounded_hour}")
3. Verilənlərin analizi və hesabatlarda istifadəsinə real nümunələr
İndi, bizdə artıq yuvarlaqlanmış tarix və zaman məlumatlarımız var, gəlin bu bacarıqların real həyatda necə istifadə edilə biləcəyindən danışaq.
Nümunə 1: İş vaxtı hesabatları
Təsəvvür edin ki, siz iş vaxtını hesablayan bir sistem düzəldirsiniz. Zəhmətlərin vaxtını ən yaxın 15 dəqiqəyə qədər yuvarlaqlamaq vaxt hesabatlarını, maaş hesablamalarını sadələşdirə bilər.
# İş vaxtı üçün zamanı yuvarlaqlayan funksiya
def round_time_for_work_log(dt, interval=15):
return round_time_to_nearest_minute(dt, interval)
start_time = datetime.strptime('08:05:30', '%H:%M:%S')
end_time = datetime.strptime('17:38:45', '%H:%M:%S')
rounded_start_time = round_time_for_work_log(start_time)
rounded_end_time = round_time_for_work_log(end_time)
print(f"Başlanğıc: {rounded_start_time.time()}")
print(f"Son: {rounded_end_time.time()}")
Nümunə 2: İstifadəçi aktivliyinin analizi
Əgər siz istifadəçilərin saytdakı aktivliyini izləyirsinizsə, vaxtı ən yaxın saata qədər yuvarlaqlamaq, hesabatlarda dəqiq məlumatları yükləmədən daha aydın bir görüntü yaratmağınıza kömək edər.
# İstifadəçi aktivliyi zaman nişanlarının yuvarlaqlanması
user_activity = [
datetime(2023, 10, 15, 14, 22),
datetime(2023, 10, 15, 14, 47),
datetime(2023, 10, 15, 15, 5)
]
rounded_activity = [round_time_to_nearest_hour(activity) for activity in user_activity]
print("İstifadəçi aktivliyi zaman nişanlarının yuvarlaqlanması:", rounded_activity)
Vaxt seriyalarının analizinin sadələşdirilməsi
Zaman seriyalarını analitikaya daxil etdiyiniz zaman görə bilərsiniz ki, yuvarlaqlama onların analizini asanlaşdırır. Qrafiklər daha az yüklənir və parametrləri mənimsəmək daha rahat olur.
Mümkün səhvlər və onların düzəldilməsi
Zaman yuvarlaqlama prosesində bir neçə məşhur səhvlə qarşılaşa bilərsiniz. Onlardan biri - yuvarlaqlama ardıcıllığının düzgün anlaşılmamasıdır. Əmin olun ki, siz intervalı və zaman formatını düzgün təyin etmisiniz. Bundan əlavə, əgər ilkin məlumatlar sizə lazım olacaqsa, onları yenidən yazmadığınızdan əmin olun.
Yuvarlaqlamanı dəqiq idarə etmək üçün həmişə yoxlayın ki, timedelta
intervalı düzgün hesablayır və məlumat giriş formatı dəqiqdir.
GO TO FULL VERSION