membuat dataframe dengan zip di python

Membuat Dataframe dari list dengan zip() Function di Python

Posted by

zip() function adalah fungsi di Python yang menerima objek iterable sebagai argumen dan mengembalikan iterator. Iterator ini menghasilkan rangkaian tuple yang berisi item dari setiap iterable, dimana item pertama di setiap iterable dipasangkan bersama, begitu juga untuk urutan item lainnya. Jika iterable memiliki panjang yang berbeda, maka panjang iterator baru yang terbentuk ditentukan berdasarkan panjang iterable yang terpendek.

Dari paragraf di atas, mungkin ada yang masih belum paham apa itu iterable dan iterator?

Iterator adalah objek dimana kita dapat melakukan proses iterasi pada objek tersebut dan mengembalikan data satu per satu tiap proses iterasi.

Suatu objek dikatakan iterable jika objek tersebut mengembalikan sebuah iterator. Objek-objek seperti list, tuple, dictionary, dan sebagainya adalah iterable. zip() dapat menerima semua jenis iterable tersebut.

Baca juga: Penjelasan Parameter inplace=True di Pandas Untuk Pemula

Jadi intinya, fungsi zip di Python memungkinkan kita memasukkan argumen berupa list, tuple, dictionary, dll kemudian akan mengeluarkan output iterator berupa pasangan item dalam objek iterable tadi. Kita harus mendefinisikan hasil zip ke dalam list, tuple, atau objek iterable lainnya.

Untuk lebih jelasnya, mari kita lihat contoh penggunaannya.

Penggunaan fungsi zip di Python

Misalnya kita memiliki dua buah list, a dan b, yang terdiri dari bilangan integer dengan jumlah item pada list masing-masing lima item.

a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]

Kemudian kita ingin membuat pasangan dari dua list tersebut, seperti (1, 6), (2, 7), dan seterusnya. Untuk menghasilkan output tersebut, kita dapat menggunakan fungsi zip(). Misalnya kita masukkan hasil zip() tersebut ke dalam variabel c.

c = zip(a, b)

Selanjutnya kita definisikan c dengan ke dalam sebuah list, misal list_c. Lalu kita print list_c.

list_c = list(c)
print(list_c)

Outputnya kira-kira seperti ini.

[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]

Apa yang terjadi jika kita hanya memasukkan satu argumen?

Baca juga: Menjadikan Kolom Sebagai Indeks Pada Dataframe Pandas

Jika kita hanya memasukkan satu argumen, misalnya hanya list a, maka output yang dihasilkan adalah seperti di bawah ini.

Tidak hanya satu atau dua argumen, kita juga dapat memasukkan lebih dari dua argumen sekaligus. Misalnya kita coba 3 argumen.

a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
s = ['a', 'b', 'c', 'd', 'e']

result = list(zip(a, b, s))
print(result)

Output:

[(1, 6, 'a'), (2, 7, 'b'), (3, 8, 'c'), (4, 9, 'd'), (5, 10, 'e')]

Baca juga: Mengatur Warna di Scatter Plot Berdasarkan Kategori di Python

Jika jumlah item pada list tidak sama, maka jumlah item yang keluar sebagai output akan mengikuti jumlah item terpendek seperti di bawah ini.

Terlihat bahwa hanya ada 5 pasang bilangan meskipun list x terdiri dari 7 item.  Item 600 dan 700 pada list x tidak diikutsertakan.

Membuat dataframe dengan zip()

Kita juga dapat membuat dataframe dari zip(). Caranya tidak berbeda dengan cara di atas. Namun setelah kita mendapatkan list yang berisi tuple berupa pasangan item, kita dapat memasukkannya sebagai argumen di dalam fungsi pandas.DataFrame().

Misalnya kita memiliki list nama_barang dan jumlah_barang seperti di bawah ini.

nama_barang = ['Buku', 'Tas', 'Kursi', 'Spidol', 'Meja']
jumlah_barang = [54, 18, 39, 20, 17]

Kemudian kita aplikasikan fungsi zip() dan simpan ke dalam list.

barang = list(zip(nama_barang, jumlah_barang))

Selanjutnya kita gunakan fungsi pandas.DataFrame() untuk membuat dataframe.

df = pd.DataFrame(barang, columns=['Nama_Barang', 'Jumlah'])

Output yang dihasilkan seperti di bawah ini.

Semoga bermanfaat!

Other Posts