apply() のシンプルな使い方
.apply() を使って手を動かしてみましょう!
生徒の成績と背景情報を含む完全な scores データセットが与えられています。
あなたのタスクは、prevalence() 関数を定義し、scores DataFrame の groups_to_consider に指定された列へ適用することです。この関数は、与えられた列で最も頻出するグループ/カテゴリを取得します(例:lunch 列で最も多いカテゴリが standard なら、prevalence() は standard を返します)。
functools モジュールの reduce() 関数はすでにインポートされています。
ヒント: pd.Series は Iterable なオブジェクトです。そのため、標準的な操作を適用できます。
この演習はコースの一部です
Pythonでコーディング面接問題を練習する
演習の手順
- 渡されたオブジェクト
seriesから一意なアイテムとその出現回数のタプルのリストを作成します。 reduce()を使って、最も出現回数が多いタプルを取り出します。- 最も出現回数が多いアイテムを返します。
groups_to_considerに指定された列を使って、scoresDataFrame に prevalence 関数を適用します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
def prevalence(series):
vals = list(series)
# Create a tuple list with unique items and their counts
itms = [(____, ____) for x in set(____)]
# Extract a tuple with the highest counts using reduce()
res = reduce(lambda x, y: ____, ____)
# Return the item with the highest counts
return ____[____]
# Apply the prevalence function on the scores DataFrame
result = scores[groups_to_consider].____
print(result)