Saat bekerja dengan data, ada saatnya Anda perlu mengubah tata letak tabel sesuai kebutuhan Anda. Mungkin Anda perlu melihat data dengan lebih jelas, atau Anda perlu mengubah data menjadi bentuk yang lebih baik.
Artikel ini akan membahas empat fungsi berbeda yang dapat Anda gunakan untuk mengubah Pandas Data Frame. Langsung saja, mari kita bahas untuk Belajar pandas python lebih lanjut.
1. sort_values
Sederhana namun berguna. Metode ini adalah salah satu yang paling berguna diantara fungsi-fungsi Pandas. Hanya dari namanya, Anda bisa menebak apa kegunaan fungsi tersebut. Ya, fungsi ini akan mengurutkan tabel kita berdasarkan nilai pada kolom tertentu.
Mari saya tunjukkan dengan menggunakan contoh dataset berikut.
import pandas as pd
import seaborn as sns
#Loading dataset example
tips = sns.load_dataset('tips')
tips.head()
Gambar atas adalah contoh dataset kita. Katakanlah saya ingin mengubah tata letak (layout) tabel berdasarkan kolom total_bill yang telah diurutkan. Hal ini bisa melakukannya dengan kode berikut.
tips.sort_values('total_bill').head()
Dengan begitu, kita memiliki tabel yang telah diurutkan secara ascending (dari nilai terkecil) berdasarkan kolom total_bill. Bagaimana jika Anda ingin mengurutkan kolom berdasarkan kolom size dan kemudian kolom tip secara menurun (dari nilai yang terbesar / descending)? Anda bisa melakukannya juga dengan kode berikut.
#Masukkan kedua kolom kedalam bentuk list
#Isi False pada parameter ascending untuk mengurutkan dari nilai terbesar
tips.sort_values(['size', 'tip'], ascending = False).head()
Sekarang kita memiliki tabel yang telah diurutkan berdasarkan kolom size terlebih dahulu, kemudian diikuti oleh kolom tip secara menurun (descending).
2. Pivot
Pivot adalah metode dari Pandas Data Frame untuk mengubah data (menghasilkan tabel “pivot”) berdasarkan nilai kolom. Pivot menggunakan nilai unik dari indeks/kolom yang telah ditentukan untuk membentuk sumbu Data Frame yang dihasilkan.
Nama lain dari Pivot adalah long to wide table. Untuk lebih jelasnya, mari kita coba dengan dataset tips.
#Saya menentukan kolom sex sebagai kolom
#serta kolom total_bill dan tip sebagai nilainya
tips.pivot(columns = 'sex', values = ['total_bill', 'tip'])
Seperti yang bisa Anda lihat, sekarang kita mengubah tata letak tabel sebagai pivot. Kelas sebelumnya pada kolom sex sekarang menjadi kolom tabel baru, dan nilai-nilainya diisi oleh nilai numerik di posisi mereka masing-masing (kolom total_bill dan tip).
Nilai NaN muncul karena tidak ada nilai dalam baris tersebut pada data asli. Sebagai contoh, indeks 0 berisi NaN dalam kolom Male; ini terjadi karena pada baris indeks 0 nilai sex adalah Female. Lihat saja gambar di bawah ini.
3. pivot_table
pivot_table adalah suatu metode dalam Pandas Data Frame. Apa perbedaannya dibandingkan dengan metode pivot? Mari kita lihat.
tips.pivot_table(columns = 'sex', values = ['total_bill', 'tip'])
Sekarang, hasilnya cukup berbeda dibandingkan dengan metode pivot. Ini karena dalam fungsi pivot_table apa yang kita dapatkan bukanlah baris dari setiap nilai data, tetapi yang kita dapatkan adalah nilai-nilai yang telah diagregasi.
Secara default, fungsi agregasi yang digunakan adalah rata-rata; itulah mengapa dalam pivot tabel di atas nilai yang ditampilkan adalah nilai rata-rata dari setiap kombinasi.
Kita bisa mencoba beberapa fungsi agregasi lainnya dalam pivot table.
tips.pivot_table(columns = 'sex', values = ['total_bill', 'tip'], aggfunc = ['mean', 'std', 'median'])
Dalam pivot table di atas, kita menambahkan fungsi agregasi selain rata-rata, yaitu; Standar Deviasi dan Median. Ini membuat multi-level pivot tabel dengan semua nilai dari semua fungsi agregasi.
Jika Anda ingin membuat pemisahan tabel yang lebih detail, kita bisa melakukannya dengan kode berikut.
#Tentukan kolom size sebagai index dan isi parameter margin dengan True untuk mendapat total summary
tips.pivot_table(columns = 'sex', values = ['total_bill', 'tip'], aggfunc = ['mean', 'std', 'median'], index = 'size',
margins = True)
Dari sini kita bisa mendapatkan pivot tabel yang detail sesuai dengan kebutuhan.
4. Melt
Melt adalah kebalikan dari fungsi pivot. Dalam fungsi ini, kita membuat wide to long table. Atau dengan kata lain, kita melakukan unpivot pada tabel. Mari kita mencobanya untuk memberi gambaran tentang apa yang dilakukan fungsi ini.
tips.melt(id_vars = 'tip', value_vars = 'sex')
Kita telah mendapatkan melt table. Dalam tabel di atas, kita mendapatkan tiga kolom; tip, variable, dan value. Kolom tips adalah nilai asli dari kolom tip, nilai kolom variabel adalah nama kolom asli (kolom sex), dan nilai kolom value adalah nilai dari kolom variabel (sex = Male, Female).
Kesimpulan
Dalam artikel ini, saya telah menunjukkan empat fungsi Pandas untuk merubah tata letak tabel:
1. sort_values
2. pivot
3. pivot_table
4. melt
Semoga bermanfaat!
Commentaires