Python

Python Pandas : Manipulasi date dan time

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 now() di  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

KarakterDeskripsiHasil
%a Hari, short versionSat
%AHari, full versionSaturday
%wHari dalam angka6
%dTanggal dalam bulan15
%bBulan, short versionAug
%BBulan, full versionAuguts
%mBulan dalam angka08
%yTahun, short version20
%YTahun, full version2020
%HJam (format 24)10
%IJam (format 12)10
%pWaktu AM/PMAM
%MMenit20
%SDetik30
%xDate08/15/20
%XTime10: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

Leave a Reply

Your email address will not be published. Required fields are marked *