10 One-Liner Python Ajaib untuk Fitur Time Series Kamu

Oleh VOXBLICK

Rabu, 29 Oktober 2025 - 09.20 WIB
10 One-Liner Python Ajaib untuk Fitur Time Series Kamu
10 Python One-Liner Time Series (Foto oleh Nemuel Sereti)

VOXBLICK.COM - Pernah merasa terjebak dalam labirin kode saat merekayasa fitur untuk data time series? Kamu tidak sendirian! Analisis data deret waktu memang bisa jadi tantangan tersendiri, apalagi ketika harus membuat fitur-fitur baru dari data yang terus bergerak. Namun, bagaimana jika ada cara untuk memotong kerumitan itu menjadi langkah-langkah yang jauh lebih sederhana dan cepat? Jawabannya ada pada kekuatan Python, khususnya dengan bantuan library Pandas, yang memungkinkan kita melakukan banyak hal kompleks hanya dalam satu baris kode.

Menguasai one-liner Python untuk rekayasa fitur time series bukan hanya soal kecepatan, tapi juga efisiensi dan kejelasan kode.

Bayangkan, kamu bisa mengubah data mentah menjadi fitur yang kaya dan siap pakai untuk model Machine Learning-mu, tanpa harus menulis blok kode yang panjang dan membingungkan. Ini akan sangat mempermudah alur kerjamu, dari eksplorasi data awal hingga persiapan data untuk pemodelan. Mari kita selami 10 one-liner Python ajaib yang akan merevolusi caramu bekerja dengan fitur time series.

10 One-Liner Python Ajaib untuk Fitur Time Series Kamu
10 One-Liner Python Ajaib untuk Fitur Time Series Kamu (Foto oleh Kevin Ku)

1. Membuat Fitur Lag (Pergeseran Waktu)

Fitur lag adalah salah satu fitur paling fundamental dalam analisis time series. Ini memungkinkanmu melihat nilai data dari periode waktu sebelumnya, yang seringkali sangat prediktif.

Misalnya, untuk memprediksi penjualan hari ini, penjualan kemarin atau minggu lalu bisa jadi indikator kuat.

  • Sihir One-Liner:
  • dfnilai_lag_1 = dfnilai_asli.shift(1)
  • Kenapa Ajaib? Dengan satu baris ini, kamu langsung mendapatkan kolom baru yang berisi nilai dari baris sebelumnya. Ganti angka 1 dengan periode lag yang kamu inginkan (misal, 7 untuk lag seminggu). Sangat praktis untuk menangkap dependensi waktu!

2. Menghitung Rata-rata Bergerak (Rolling Mean)

Rata-rata bergerak membantu menghaluskan fluktuasi data dan menunjukkan tren jangka pendek. Ini sangat berguna untuk mengurangi noise dan menyoroti pola yang mendasari data time series.

  • Sihir One-Liner:
  • dfrata_rata_bergerak_3 = dfnilai_asli.rolling(window=3).mean()
  • Kenapa Ajaib? Kamu bisa dengan mudah menghitung rata-rata dari N periode sebelumnya. Cukup ganti window=3 dengan ukuran jendela yang kamu inginkan. Ini adalah fondasi untuk banyak indikator teknis lainnya.

3. Menghitung Standar Deviasi Bergerak (Rolling Standard Deviation)

Selain rata-rata, standar deviasi bergerak memberikan gambaran tentang volatilitas atau seberapa banyak data berfluktuasi dalam periode tertentu. Ini penting untuk memahami risiko atau ketidakpastian.

  • Sihir One-Liner:
  • dfstd_dev_bergerak_3 = dfnilai_asli.rolling(window=3).std()
  • Kenapa Ajaib? Sama seperti rata-rata bergerak, kamu bisa langsung mendapatkan ukuran volatilitas. Kombinasikan ini dengan rata-rata bergerak untuk mendapatkan gambaran yang lebih lengkap tentang tren dan variasi data.

4. Melakukan Differencing (Perbedaan)

Differencing digunakan untuk membuat data time series menjadi stasioner, yaitu memiliki rata-rata dan varians yang konstan seiring waktu. Ini adalah langkah krusial untuk banyak model time series seperti ARIMA.

  • Sihir One-Liner:
  • dfnilai_diff_1 = dfnilai_asli.diff(1)
  • Kenapa Ajaib? Dengan satu baris, kamu menghitung perbedaan antara nilai saat ini dengan nilai periode sebelumnya. Ini menghilangkan tren dan seasonality, membuat datamu lebih mudah dianalisis dan dimodelkan.

5. Mengekstrak Komponen Waktu (Tahun, Bulan, Hari)

Informasi waktu itu sendiri bisa menjadi fitur yang sangat kuat. Apakah ada pola musiman? Apakah ada tren bulanan? Mengekstrak komponen-komponen ini memungkinkan modelmu menangkap pola tersebut.

  • Sihir One-Liner (untuk Tahun):
  • dftahun = df.index.year
  • Sihir One-Liner (untuk Bulan):
  • dfbulan = df.index.month
  • Sihir One-Liner (untuk Hari dalam Seminggu):
  • dfhari_dalam_minggu = df.index.dayofweek
  • Kenapa Ajaib? Asumsi indeks DataFrame-mu adalah datetime, kamu bisa dengan mudah "memecah" informasi tanggal menjadi fitur-fitur kategorikal atau numerik yang relevan. Ini sangat fundamental untuk rekayasa fitur time series.

6. Resampling Data (Misal: Agregasi Mingguan)

Seringkali, kamu perlu mengubah frekuensi datamu, misalnya dari harian menjadi mingguan atau bulanan, dan melakukan agregasi tertentu (sum, mean, max, min). Resampling adalah jawabannya.

  • Sihir One-Liner:
  • df_mingguan = df.resample(W)nilai_asli.sum().to_frame()
  • Kenapa Ajaib? Kamu bisa dengan cepat mengubah granularitas datamu. W untuk mingguan, M untuk bulanan, D untuk harian, dan seterusnya. Kamu juga bisa ganti `.sum()` dengan `.mean()`, `.max()`, atau `.min()` sesuai kebutuhan agregasimu.

7. Menghitung Jumlah Kumulatif (Cumulative Sum)

Jumlah kumulatif menunjukkan total nilai hingga titik waktu tertentu. Ini berguna untuk melacak akumulasi sesuatu, seperti total penjualan sepanjang tahun atau total pengunjung.

  • Sihir One-Liner:
  • dfjumlah_kumulatif = dfnilai_asli.cumsum()
  • Kenapa Ajaib? Tanpa perlu loop manual, kamu langsung mendapatkan kolom yang menunjukkan akumulasi nilai. Ini bisa menjadi fitur yang sangat informatif untuk memodelkan pertumbuhan atau totalitas.

8. Menangani Nilai Hilang dengan Forward Fill (ffill)

Data time series seringkali memiliki nilai hilang (NaN). Salah satu cara paling umum dan sederhana untuk mengatasinya adalah dengan mengisi nilai hilang dengan nilai valid terakhir yang diketahui.

  • Sihir One-Liner:
  • dfnilai_asli_terisi = dfnilai_asli.ffill()
  • Kenapa Ajaib? `ffill()` (forward fill) dengan cepat mengisi semua nilai NaN ke depan dari nilai valid sebelumnya. Ini sangat berguna untuk menjaga kontinuitas data time series tanpa memperkenalkan bias yang terlalu besar.

9. Menghitung Perubahan Persentase

Perubahan persentase menunjukkan seberapa banyak nilai berubah relatif terhadap nilai sebelumnya. Ini bisa menjadi indikator penting untuk pertumbuhan atau penurunan relatif.

  • Sihir One-Liner:
  • dfperubahan_persen = dfnilai_asli.pct_change()  100
  • Kenapa Ajaib? Kamu bisa langsung mendapatkan persentase perubahan dari periode ke periode. Kalikan dengan 100 untuk mendapatkan persentase yang lebih mudah dibaca. Ini adalah fitur yang sangat umum dalam analisis finansial.

10. Menggunakan Expanding Window (Jendela Ekspansi)

Berbeda dengan rolling window yang ukurannya tetap, expanding window akan terus membesar seiring waktu. Ini berguna untuk menghitung statistik kumulatif dari awal data hingga titik waktu saat ini.

  • Sihir One-Liner:
  • dfrata_rata_ekspansi = dfnilai_asli.expanding().mean()
  • Kenapa Ajaib? Kamu bisa menghitung rata-rata, standar deviasi, atau statistik lain dari semua data yang telah diamati hingga saat ini. Ini membantu menangkap tren jangka panjang dari awal data, berbeda dengan rolling mean yang hanya melihat jendela tertentu.

Melihat betapa banyak fitur time series yang bisa kamu ciptakan hanya dengan satu baris kode Python sungguh menakjubkan, bukan? Kamu tidak perlu lagi menghabiskan waktu berjam-jam untuk menulis fungsi-fungsi kompleks yang sama berulang kali. Dengan menguasai one-liner ini, kamu bukan hanya mempercepat proses rekayasa fitur, tetapi juga membuat kode yang lebih bersih, mudah dibaca, dan efisien.

Ingat, kunci dari analisis data yang efektif adalah kemampuan untuk bereksperimen dengan berbagai fitur dan melihat mana yang paling relevan untuk masalahmu.

One-liner ini akan memberimu kebebasan untuk melakukan eksplorasi tersebut dengan cepat dan tanpa hambatan. Jadi, mulailah menerapkan "sihir" Python ini dalam proyek time series-mu dan rasakan sendiri perbedaannya. Selamat mencoba dan semoga analisis datamu semakin cemerlang!

Apa Reaksi Anda?

Suka Suka 0
Tidak Suka Tidak Suka 0
Cinta Cinta 0
Lucu Lucu 0
Marah Marah 0
Sedih Sedih 0
Wow Wow 0