کتابخانه Pandas برای کار با تاریخ و زمان، ابزارهای مختلفی را فراهم می کند که بسیار قابل استفاده هستند. در اینجا به برخی از این ابزارها اشاره خواهیم کرد:
تبدیل رشته به تاریخ
میتوانید از تابع pd.to_datetime()
برای تبدیل رشتههای مربوط به تاریخ و زمان به تاریخ و زمان Pandas استفاده کنید. این تابع پارامترهایی مانند فرمت تاریخ و محل قرار گرفتن سال، ماه و روز را نیز قابل تنظیم است. برای مثال:
import pandas as pd
dates = ['2022-04-01', '2022-04-02', '2022-04-03']
datetime_series = pd.to_datetime(dates)
print(datetime_series)
ساخت ستون تاریخ
با استفاده از تابع pd.date_range()
، میتوانید تاریخها را برای یک بازه زمانی مشخص ساخته و به صورت ستون به DataFrame اضافه کنید. برای مثال:
import pandas as pd
start_date = '2022-04-01'
end_date = '2022-04-05'
datetime_index = pd.date_range(start=start_date, end=end_date)
df = pd.DataFrame(index=datetime_index)
df['data'] = [10, 20, 30, 40, 50]
print(df)
انجام عملیات روی تاریخ و زمان
در Pandas، میتوانید عملیاتهایی مانند جمع یا تفریق دو تاریخ یا زمان را انجام دهید. همچنین میتوانید فاصله زمانی بین دو تاریخ را محاسبه کنید. برای مثال:
import pandas as pd
dates = ['2022-04-01', '2022-04-05']
datetime_series = pd.to_datetime(dates)
delta = datetime_series.diff()
print(delta)
در این مثال، با استفاده از تابع pd.to_datetime()
، دو رشته را به تاریخ و زمان Pandas تبدیل کردهایم. سپس با استفاده از تابع diff()
، فاصله زمانی بین دو تاریخ را محاسبه کرده و در متغیر delta ذخیره کرده ایم.
گروهبندی بر اساس تاریخ
با استفاده از تابع pd.Grouper()
، میتوانید دادهها را بر اساس تاریخ یا زمان گروهبندی کنید. برای مثال:
import pandas as pd
dates = pd.date_range('2022-04-01', periods=6)
df = pd.DataFrame({'date': dates, 'value': [1, 2, 3, 4, 5, 6]})
df.groupby(pd.Grouper(key='date', freq='2D')).sum()
در این مثال، ابتدا با استفاده از تابع pd.date_range()
، یک سری تاریخ در بازه زمانی 6 روزه ایجاد کردیم. سپس با استفاده از تابع pd.DataFrame()
، یک DataFrame ایجاد کردیم که شامل تاریخها و یک ستون مقدار است. سپس با استفاده از تابع pd.Grouper()
و groupby()
، دادهها را بر اساس دو روز گروهبندی کردهایم و مجموع مقادیر را برای هر دو روز محاسبه کردهایم.
فیلتر کردن بر اساس تاریخ
میتوانید با استفاده از توابع loc()
و iloc()
، دادههای مربوط به یک بازه زمانی خاص را از DataFrame استخراج کنید. برای مثال:
import pandas as pd
dates = pd.date_range('2022-04-01', periods=6)
df = pd.DataFrame({'date': dates, 'value': [1, 2, 3, 4, 5, 6]})
df.loc[(df['date'] >= '2022-04-02') & (df['date'] <= '2022-04-04')]
در این مثال، با استفاده از تابع pd.date_range()
، یک سری تاریخ در بازه زمانی 6 روزه ایجاد کردیم. سپس با استفاده از تابع pd.DataFrame()
، یک DataFrame ایجاد کردیم که شامل تاریخها و یک ستون مقدار است. سپس با استفاده از تابع loc()
و &
، دادههایی را که در بازه زمانی 2 تا 4 آورده شدهاند، از DataFrame استخراج کردهایم.
تغییر فرمت تاریخ
import pandas as pd
dates = pd.date_range('2022-04-01', periods=6)
df = pd.DataFrame({'date': dates, 'value': [1, 2, 3, 4, 5, 6]})
df['date'] = df['date'].dt.strftime('%m/%d/%Y')
در این مثال، با استفاده از تابع pd.date_range()
، یک سری تاریخ در بازه زمانی 6 روزه ایجاد کردیم. سپس با استفاده از تابع pd.DataFrame()
، یک DataFrame ایجاد کردیم که شامل تاریخها و یک ستون مقدار است. سپس با استفاده از تابع dt.strftime()
، فرمت تاریخ را به “mm/dd/yyyy” تغییر دادهایم.
تبدیل تاریخ به دورههای زمانی
با استفاده از تابع pd.to_period()
، میتوانید یک سری تاریخ را به دورههای زمانی مختلف تبدیل کنید. برای مثال:
import pandas as pd
dates = pd.date_range('2022-04-01', periods=6, freq='D')
df = pd.DataFrame({'date': dates, 'value': [1, 2, 3, 4, 5, 6]})
df['month'] = df['date'].dt.to_period('M')
df['quarter'] = df['date'].dt.to_period('Q')
در این مثال، با استفاده از تابع pd.date_range()
، یک سری تاریخ در بازه زمانی 6 روزه با فرکانس روزانه ایجاد کردیم. سپس با استفاده از تابع pd.DataFrame()
، یک DataFrame ایجاد کردیم که شامل تاریخها و یک ستون مقدار است. سپس با استفاده از تابع dt.to_period()
، ستونهای جدیدی با نام “month” و “quarter” به DataFrame اضافه کردیم که به ترتیب دورههای ماهیانه و فصلی مربوط به تاریخها هستند.
در کل، pandas دارای ابزارهای قدرتمندی برای کار با تاریخ و زمان است که به شما کمک میکنند تا دادههای زمانی خود را به راحتی تحلیل کنید.
دیدگاهها