集約関数を定義する
在庫に占める看板アイテムの割合が高いことに驚いた小売業者は、データをよりよく探索するために、さまざまなカテゴリでさらに集約するのが妥当だと判断しました。これはあなたには簡単に思えますが、小売業者はこれまで、取引とアイテムについての基本的な記述的分析すら実施できていませんでした。
小売業者は、candles、bags、boxesカテゴリの集約を依頼しています。作業を簡単にするため、関数を書くことにします。この関数はアイテムのカテゴリを含む文字列を受け取り、そのカテゴリのアイテムを各取引が含むかどうかを示すDataFrameを出力します。pandasはpdとしてインポート済みです。さらに、データはワンホットエンコード形式でonehotとして読み込まれています。
この演習はコースの一部です
Python で学ぶマーケットバスケット分析
演習の手順
- 列名のサブセットを抽出するリスト内包表記を完成させてください。
- 集約したいアイテムに対応する列を選択してください。
- 文字列
bag、box、candleを使って、関数aggregate()でbags、boxes、candlesの集約を実行してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
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 = ____