演習課題「集約方法の追加」
コードエリアには、データフレーム df が定義されています。
このデータフレーム df を Category 列でグルーピングし、Product 列を「文字列の長さの総数」に集約して、次の形式で出力してください。
Product
Category
--- ---
--- ---
...
--- ---
※ 回答時には
print(df)
をコメントアウトして回答してください。※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む
#10:集約方法の追加
このチャプターでは、自分で定義した関数を用いて集約の方法を指定する方法を学習します。
- agg メソッドを用いて、自分で定義した関数を指定して集約することができる
import pandas as pd
def count_even(group_series):
return group_series[group_series % 2 == 0].count()
df = pd.DataFrame([["cloudy", 22], ["rainy", 19], ["sunny", 26],
["sunny", 25], ["cloudy", 24], ["rainy", 17]], columns=["weather", "temperature"])
print(df.groupby("weather").agg(count_even))
group_series[group_series % 2 == 0]
では、シリーズを「値が偶数である」という条件でフィルタリングしている- agg メソッドに渡した関数の引数には、各グループからシリーズが渡される
- 関数の返り値として、そのグループを集約した結果を表す数値や文字列などを返すようにする