date (tanggal) dan time (waktu) adalah elemen yang sering kita temukan di dataset. Bentuk dataset yang mempunyai atribut date dan time biasanya berupa data transaksi
Atribut date umumnya terdiri dari year (tahun), month (bulan) dan day (hari). Sedangkan time umumnya terdiri dari hour (jam), minute (menit) dan second (detik)
Biasanya umumnya disimbolkan seperti ini yyyy-mm-dd hh:mm:ss
Contohnya adalah 2020-08-10 12:22:49
Python Datetime
Dalam Python terdapat library yang dapat melakukan maniputasi date dan time yaitu datetime
Untuk menggunakannya cukup import datetime
dan panggil fungsi datetime
Misalnya kita ingin mengetahui waktu sekarang gunakan fungsi
di now()
datetime
from datetime import datetime sekarang = datetime.now()
Hasilnya adalah
Kita dapat memberi tambahan parameter untuk format yang kita inginkan dengan menggunakan fungsi str()
from datetime import datetime sekarang = datetime.now() str(sekarang)
Hasilnya adalah
Kita juga dapat mengekstrak nilai hari, tanggal, bulan, tahun dan sebagainya dari fungsi datetime
print(sekarang.day) print(sekarang.month) print(sekarang.year) print(sekarang.hour) print(sekarang.minute) print(sekarang.second) print(sekarang.today())
Hasilnya adalah
Formatting
Ada banyak bentuk format date dan time
Kita bisa gunakan fungsi strftime() untuk objek tanggal menjadi string yang mudah dibaca
Misalnya kita buat tanggal dan waktu menggunakan fungsi datetime()
Kita input parameter misal tanggal 15 Agustus 2020 Jam 10 menit 20 dan detik 30
Selanjutnya kita bisa mencetak untuk mendapatkan nilai year, month, day, hour, minute dan second
x = datetime(2020, 8, 15, 10, 20, 30) print(x.strftime("%Y-%m-%d %H:%M:%S"))
Hasilnya adalah
2020-08-15 10:20:30
Kita bisa gunakan karakter string lainnya untuk mendapatkan informasi terhadap waktu yang telah kita set
Beberapa format lainnya adalah seperti pada tabel di bawah ini
Karakter | Deskripsi | Hasil |
%a | Hari, short version | Sat |
%A | Hari, full version | Saturday |
%w | Hari dalam angka | 6 |
%d | Tanggal dalam bulan | 15 |
%b | Bulan, short version | Aug |
%B | Bulan, full version | Auguts |
%m | Bulan dalam angka | 08 |
%y | Tahun, short version | 20 |
%Y | Tahun, full version | 2020 |
%H | Jam (format 24) | 10 |
%I | Jam (format 12) | 10 |
%p | Waktu AM/PM | AM |
%M | Menit | 20 |
%S | Detik | 30 |
%x | Date | 08/15/20 |
%X | Time | 10:20:30 |
Berikut jika diimplementasikan ke dalam Python
x = datetime(2020, 8, 15, 10, 20, 30) print(x.strftime("%a")) print(x.strftime("%A")) print(x.strftime("%w")) print(x.strftime("%d")) print(x.strftime("%b")) print(x.strftime("%B")) print(x.strftime("%m")) print(x.strftime("%y")) print(x.strftime("%Y")) print(x.strftime("%H")) print(x.strftime("%I")) print(x.strftime("%p")) print(x.strftime("%M")) print(x.strftime("%S")) print(x.strftime("%x")) print(x.strftime("%X"))
Hasilnya
Sat Saturday 6 15 Aug August 08 20 2020 10 10 AM 20 30 08/15/20 10:20:30
Pandas Datetime
Dalam manipulasi data tabular yang terdapat data datetime biasanya tipe datanya berbentuk string
Data harus dirubah terlebih dahulu menjadi tipe data datetime agar dapat diporses dengan mudah
Misalnya kita akan membuat DataFrame yang terdapat atribut waktu transaksi jual dan nominal harganya seperti ini
import pandas as pd df = pd.DataFrame({'date':['08/10/2020', '08/10/2020', '08/10/2020'], 'price':[3000, 6000, 10000]})
Hasilnya adalah
dan kita cek tipe datanya adalah objek
Kita dapat merubahnya menjadi format datetime dengan fungsi to_datetime()
df['date'] = pd.to_datetime(df['date']) df.info()
Setelah tipe data berhasil dirubah selanjutnya akan lebih mudah dalam manipulasi datanya