manipulasi series pandas dengan map() function di python

Manipulasi Series Pandas dengan map() Python

Posted by

map() adalah salah satu built-in function di Python yang dapat digunakan untuk menerapkan sebuah fungsi pada semua elemen dari objek yang bertipe iterable seperti list, tuple, dan sebagainya. Hasil dari map() adalah berupa objek map yang dapat dikonversi kembali menjadi objek list, tuple, dan lainnya.

Untuk pengolahan data di Pandas, kita dapat menggunakan map() pada sebuah kolom tertentu. map() tidak dapat digunakan langsung pada seluruh dataframe karena map() hanya bekerja pada series atau array satu dimensi.

Penggunaan map() terhadap list

List merupakan salah satu objek iterable yang dapat diaplikasikan function map(). Mari kita coba terapkan map() pada sebuah list yang berisi bilangan untuk membuat seluruh elemen pada list tersebut menjadi pangkat dua. Hasil dari map() tersebut akan disimpan sebagai list baru.

Misalnya kita memiliki list seperti di bawah ini.

list_bilangan = [1, 2, 3, 4, 5]

Baca Juga: 2 Teknik Reduksi Dimensi Populer di Python

Kemudian kita memiliki fungsi pangkat_dua dimana akan mengembalikan nilai pangkat dua dari sebuah bilangan.

def pangkat_dua(x):
    return x*x

Setelah itu, kita terapkan function map() seperti di bawah ini. Hasilnya disimpan pada variabel bilangan_pangkat_dua.

bilangan_pangkat_dua = map(pangkat_dua, list_bilangan)

Hasil dari map() tersebut tidak dapat langsung di-print. Jika ingin melihat hasilnya, kita harus mengkonversi hasil map() tersebut ke dalam sebuah list atau objek iterable lainnya. Misalnya di sini kita akan mengkonversinya menjadi sebuah list dan menyimpannya ke dalam variabel list_pangkat_dua.

list_pangkat_dua = list(bilangan_pangkat_dua)

Baca Juga: Menjumlahkan Data Berdasarkan Kategori di Python

Jika kita print list_pangkat_dua, outputnya akan berupa bilangan pangkat dua dari list_bilangan.

print(list_pangkat_dua)

Output:

[1, 4, 9, 16, 25]

contoh penggunaan map() dengan list

Penggunaan map() terhadap tuple

Penggunaan map() terhadap objek tuple tidak jauh berbeda dengan list. Perhatikan contoh berikut.

tuple_bilangan = (100, 289, 164, 335, 222)

def sepuluh_persen(x):
    return x/100*10

hasil_sepuluh_persen = map(sepuluh_persen, tuple_bilangan)
tuple_hasil = tuple(hasil_sepuluh_persen)

print(tuple_hasil)

Output:

(10.0, 28.900000000000002, 16.4, 33.5, 22.200000000000003)

Pada contoh di atas, hasil map() dikonversi menjadi objek bertipe tuple.

contoh penggunaan map() dengan tuple

Penggunaan map() untuk objek string

Kita juga dapat menggunakan map() untuk objek bertipe string.

Misalnya kita memiliki sebuah list yang berisi string dan ingin membuat string menjadi huruf kapital.

string = ['Selamat Pagi', 'Halo']

def kapital(s):
return s.upper()

huruf_kapital = map(kapital, string)
print(list(huruf_kapital))

Output:

[‘SELAMAT PAGI’, ‘HALO’]

contoh penggunaan map() dengan string

Penggunaan map() di Pandas

Untuk analisis data, kita juga dapat menggunakan map() pada dataframe Pandas. Namun, penggunaannya terbatas yaitu hanya untuk satu kolom karena map() hanya bekerjapada series atau array satu dimensi.

Mari kita coba menggunakan map()  di Pandas.

Sebelumnya mari kita buat dataframe-nya terlebih dahulu.

import pandas as pd

data = {'kategori': ['A', 'B', 'C', 'B', 'A', 'A'],
        'bilangan': [103, 548, 987, 781, 332, 190]}

df = pd.DataFrame(data)
df

Output:

contoh dataframe

Kemudian kita buat objek map() untuk mengalikan kolom bilangan dengan 2.

Baca Juga: Mengecek Keberadaan Item dengan any() di Python

Disini saya akan menggunakan lambda sehingga tidak perlu membuat fungsi seperti contoh sebelumnya. Perhatikan kode berikut.

map_bilangan = map(lambda x: x*2, df['bilangan'])

lambda x: x*2 adalah perintah yang akan kita aplikasikan untuk df['bilangan'].

Lalu kita simpan hasil map() tersebut sebagai list pada df['bilangan'].

df['bilangan'] = list(map_bilangan)
df

Output:

contoh dataframe setelah penerapan map()

Sekarang semua nilai pada kolom bilangan sudah dikalikan dua.

Semoga bermanfaat!

modul data science ilmudatapy