Pandas date_range()

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')

Sharing is caring:

Leave a Comment