נפתרה: הבדל תאריכי פנדה בחודשים

העדכון אחרון: 09/11/2023

Pandas היא ספריית Python פופולרית המאפשרת מניפולציה וניתוח נתונים, ומציעה מגוון רחב של פונקציות לטיפול בתאריכים ושעות. מקרה שימוש נפוץ אחד בניתוח נתונים הוא חישוב ההפרש בין תאריכים בחודשים. במאמר זה, נחקור גישה להשיג זאת באמצעות Pandas, יחד עם הסבר שלב אחר שלב של הקוד. יתר על כן, נדון בכמה ספריות ופונקציות רלוונטיות אחרות כדי לשפר את הבנתנו את הבעיה.

טיפול בנתוני תאריך ושעה הוא תמיד אתגר עבור מנתחי ומפתחי נתונים. ספריית ה-Pandas של Python הופכת את המשימה הזו לקלה הרבה יותר על ידי מתן מערך רב עוצמה ורב-תכליתי של פונקציות למניפולציה של תאריכים, שעות ודלתות זמן. במאמר זה, נדגים כיצד לחשב את ההפרש בין שני תאריכים בחודשים באמצעות Pandas.

פתרון לבעיה

import pandas as pd

def date_diff_in_months(date1, date2):
    return (date2.year - date1.year) * 12 + (date2.month - date1.month)

date1 = pd.to_datetime("2021-01-01")
date2 = pd.to_datetime("2022-05-01")

months_diff = date_diff_in_months(date1, date2)
print(months_diff)

הסבר על הקוד

1. ראשית, אנו מייבאים את ספריית Pandas בתור pd. זה מאפשר לנו להשתמש בחבילת הפונקציות החזקה של Pandas לעבודה עם תאריכים.

2. לאחר מכן נגדיר פונקציה בשם `date_diff_in_months` שלוקחת שני ארגומנטים, `date1` ו`date2`. פונקציה זו תחזיר את מספר החודשים בין שני תאריכי הקלט.

3. בתוך הפונקציה, אנו מחשבים את ההפרש בחודשים על ידי הפחתת רכיבי השנה והחודש של `date1` מהרכיבים המתאימים שלהם ב-`date2`, ולאחר מכן התאמת התוצאה להפרש בשנים.

4. לאחר מכן, אנו יוצרים שני אובייקטי חותמת זמן של Pandas, `date1` ו-`date2`, באמצעות הפונקציה `pd.to_datetime`. אלה מייצגים שני תאריכים לדוגמה למקרה המבחן שלנו.

5. אנו קוראים לפונקציה `date_diff_in_months` עם `date1` ו-`date2`, מאחסנים את התוצאה במשתנה `months_diff`.

6. לבסוף, נדפיס את המשתנה `months_diff`, אשר יציג את מספר החודשים בין שני תאריכי הקלט.

פנדות וחותמות זמן

אובייקטי חותמת הזמן של Pandas הם צדדיים להפליא, ומאפשרים מניפולציה והשוואה חלקה של תאריך ושעה. על ידי קריאה לפונקציה `pd.to_datetime`, אנו יכולים להמיר מגוון רחב של פורמטים של תאריך לאובייקטים של חותמת זמן של Pandas. לאחר מכן ניתן להשוות אובייקטים אלה בקלות, לתפעל אותם ולנצל אותם לביצוע חישובים מורכבים. בפתרון שלנו, אנו ממנפים את הכוח של אובייקטי Timestamp כדי לחשב את ההפרש בין שני תאריכים בחודשים.

ספריות ופונקציות אלטרנטיביות

  • מטומטם: ספריית Python פופולרית נוספת לעבודה עם תאריכים ושעות היא Numpy. עם אובייקטי `numpy.datetime64` שלה, Numpy מציעה פונקציונליות דומה לאובייקטי Timestamp של Pandas. Numpy מספקת בנוסף פונקציות כמו `numpy.timedelta64` לחישוב הבדלים בין תאריכים.
  • dateutil: ספריית dateutil היא כלי רב עוצמה לניתוח ומניפולציה של תאריכים ב- Python. הוא מספק קבוצה נרחבת של פונקציות ומחלקות לטיפול באריתמטיקה של תאריכים, כולל הפונקציה `dateutil.relativedelta.relativedelta`, אשר שימושית במיוחד לחישוב הבדלים בתאריכים במונחים של שנים, חודשים וימים.

לסיכום, חישוב ההפרש בין שני תאריכים בחודשים באמצעות Pandas יכול להתבצע באמצעות שיטה פשוטה אך יעילה. אנו יכולים להסתמך על אובייקטי חותמת זמן של Pandas ופונקציה מותאמת אישית לביצוע משימה זו בקלות. יתר על כן, ספריות אלטרנטיביות כמו Numpy ו-dateutil מציעות גישות חלופיות כדי לעזור להתמודד עם מגוון רחב של בעיות הקשורות לתאריך ושעה.

הודעות קשורות: