Mendefinisikan fungsi agregasi
Terkejut dengan tingginya porsi item bertema tanda (sign) dalam inventarisnya, peritel memutuskan bahwa masuk akal untuk melakukan agregasi lebih lanjut untuk berbagai kategori agar dapat mengeksplorasi data dengan lebih baik. Ini terlihat sepele bagi Anda, tetapi peritel sebelumnya bahkan belum mampu melakukan analisis deskriptif dasar atas transaksinya dan itemnya.
Peritel meminta Anda melakukan agregasi untuk kategori candles, bags, dan boxes. Untuk menyederhanakan tugas, Anda memutuskan untuk menulis sebuah fungsi. Fungsi ini akan menerima string yang berisi kategori suatu item. Lalu fungsi akan menghasilkan sebuah DataFrame yang menunjukkan apakah setiap transaksi mencakup item dari kategori tersebut. Perhatikan bahwa pandas telah diimpor untuk Anda sebagai pd. Selain itu, data telah diimpor dalam format one-hot encoded sebagai onehot.
Latihan ini adalah bagian dari kursus
Analisis Market Basket dengan Python
Petunjuk latihan
- Lengkapi list comprehension yang mengekstrak subset header kolom.
- Pilih kolom untuk item yang ingin Anda agregasikan.
- Lakukan agregasi menggunakan fungsi
aggregate()untuk bags, boxes, dan candles dengan menggunakan stringbag,box, dancandle.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
def aggregate(item):
# Select the column headers for sign items in onehot
item_headers = [i for i in ____.columns if i.lower().find(item)>=0]
# Select columns of sign items
item_columns = onehot[____]
# Return category of aggregated items
return item_columns.sum(axis = 1) >= 1.0
# Aggregate items for the bags, boxes, and candles categories
bags = aggregate('bag')
boxes = aggregate('____')
candles = ____