プロット作成のユーザー定義関数
前の演習では、次のコードを書いてプロットを作成しました。
# tech と fmcg の企業を抽出
subset_dat = dataset.loc[dataset["comp_type"].isin(["tech", "fmcg"])]
# tech と fmcg の企業の年間平均粗利益率を計算
subset_dat_avg = subset_dat.pivot_table(index=["Year", "comp_type"], values = "gross_margin").reset_index()
# company 列を追加
subset_dat_avg["company"] = np.where(subset_dat_avg["comp_type"]=="tech", "Avg tech", "Avg fmcg")
# DataFrame を結合
plot_df = pd.concat([subset_dat, subset_dat_avg], axis=0)
# プロットを作成
sns.relplot(data=plot_df.reset_index(drop=True), x="Year", y="gross_margin", hue="company", col="comp_type", kind="line")
plt.show()
plt.close()
この演習では、tech と FMCG の DataFrame に対して同じ処理を繰り返していることに気づきます。これは重複が多く、DRY(Don't repeat yourself:繰り返しを避ける)というコーディング原則に反します。重複したコードは、作業量が増えるだけでなく、ミスも起こりやすくなります。この演習では、データ処理とプロット作成を行う関数を自分で定義します。
この演習はコースの一部です
