Method date_range() adalah method pada level library yang berguna untuk mengenerate date dengan rentang tertentu dan aturan yang dapat kita definisikan.
Parameter yang tersedia adalah:
- start: tanggal awal yang digunakan.
- end: tanggal akhir yang digunakan.
- periods: repetesi yang akan dilakukan.
- freq: untuk mengatur cara pemilihan tanggal. Default parameter adalah D, atau day.
Argument untuk freq cukup luas, kita akan bahas beberapa contoh.
Generate date dari 1 Des 2021 – 15 Des 2021 dengan frequensi harian.
pd.date_range(start="2021-12-1", end="2021-12-15", freq="D")
DatetimeIndex(['2021-12-01', '2021-12-02', '2021-12-03', '2021-12-04',
'2021-12-05', '2021-12-06', '2021-12-07', '2021-12-08',
'2021-12-09', '2021-12-10', '2021-12-11', '2021-12-12',
'2021-12-13', '2021-12-14', '2021-12-15'],
dtype='datetime64[ns]', freq='D')
Generate date dari 1 Des 2021 – 15 Des 2021 dengan frequensi tiap 2 hari.
pd.date_range(start="2021-12-1", end="2021-12-15", freq="2D")
DatetimeIndex(['2021-12-01', '2021-12-03', '2021-12-05', '2021-12-07',
'2021-12-09', '2021-12-11', '2021-12-13', '2021-12-15'],
dtype='datetime64[ns]', freq='2D')
Generate date dari 1 Des 2021 – 15 Des 2021 dengan frequensi hari kerja. Hari sabtu dan minggu tidak akan digenerate.
pd.date_range(start="2021-12-1", end="2021-12-15", freq="B")
DatetimeIndex(['2021-12-01', '2021-12-02', '2021-12-03', '2021-12-06',
'2021-12-07', '2021-12-08', '2021-12-09', '2021-12-10',
'2021-12-13', '2021-12-14', '2021-12-15'],
dtype='datetime64[ns]', freq='B')
Generate date dari 1 Des 2021 – 15 Des 2021 dengan frequensi mingguan. Secara default adalah “W-SUN” atau hari minggu. Bisa diatur menjadi hari lain.
pd.date_range(start="2021-12-1", end="2021-12-15", freq="W")
DatetimeIndex(['2021-12-05', '2021-12-12'], dtype='datetime64[ns]', freq='W-SUN')
pd.date_range(start="2021-12-1", end="2021-12-15", freq="W-WED")
DatetimeIndex(['2021-12-01', '2021-12-08', '2021-12-15'], dtype='datetime64[ns]', freq='W-WED')
Generate date dari 1 Des 2021 – 15 Des 2021 dengan frequensi Jam.
pd.date_range(start="2021-12-1", end="2021-12-15", freq="H")
DatetimeIndex(['2021-12-01 00:00:00', '2021-12-01 01:00:00',
'2021-12-01 02:00:00', '2021-12-01 03:00:00',
'2021-12-01 04:00:00', '2021-12-01 05:00:00',
...
...
'2021-12-14 21:00:00', '2021-12-14 22:00:00',
'2021-12-14 23:00:00', '2021-12-15 00:00:00'],
dtype='datetime64[ns]', length=337, freq='H')
Sama seperti D, kita bisa gunakan numeric frekuensi, contoh tiap 12 jam.
pd.date_range(start="2021-12-1", end="2021-12-15", freq="12H")
DatetimeIndex(['2021-12-01 00:00:00', '2021-12-01 12:00:00',
'2021-12-02 00:00:00', '2021-12-02 12:00:00',
'2021-12-03 00:00:00', '2021-12-03 12:00:00',
'2021-12-04 00:00:00', '2021-12-04 12:00:00',
....
....
'2021-12-12 00:00:00', '2021-12-12 12:00:00',
'2021-12-13 00:00:00', '2021-12-13 12:00:00',
'2021-12-14 00:00:00', '2021-12-14 12:00:00',
'2021-12-15 00:00:00'],
dtype='datetime64[ns]', freq='12H')
Silakan bereksperimen dengan argument freq lainya seperti
- A: Untuk year end.
- M: untuk monthly, tanggal yang digunakan akhir bulan.
- MS: untuk monthly, tanggal yang digunakan awal bulan.
Pada contoh berikut akan digunakan parameter periods. Dengan menggunakan parameter periods kita tidak perlu mendefinisikan parameter end.
pd.date_range(start="2021-12-1", periods=10, freq="D")
DatetimeIndex(['2021-12-01', '2021-12-02', '2021-12-03', '2021-12-04',
'2021-12-05', '2021-12-06', '2021-12-07', '2021-12-08',
'2021-12-09', '2021-12-10'],
dtype='datetime64[ns]', freq='D')
Silakan bereksperimen dengan parameter freq. Berikut contoh penggunaan periods 10 dan freq=”W”
pd.date_range(start="2021-12-1", periods=10, freq="W")
DatetimeIndex(['2021-12-05', '2021-12-12', '2021-12-19', '2021-12-26',
'2022-01-02', '2022-01-09', '2022-01-16', '2022-01-23',
'2022-01-30', '2022-02-06'],
dtype='datetime64[ns]', freq='W-SUN')
Tanggal akan digenerate 10 kali dimulai dari hari minggu.
Anda juga menggunakan end dan periods untuk mengenerate date range. Jadi tanggal akan digenerate mundur dari end date.
pd.date_range(end="2021-12-31", periods=10, freq="D")
DatetimeIndex(['2021-12-22', '2021-12-23', '2021-12-24', '2021-12-25',
'2021-12-26', '2021-12-27', '2021-12-28', '2021-12-29',
'2021-12-30', '2021-12-31'],
dtype='datetime64[ns]', freq='D')