1. 学ぶ
  2. /
  3. コース
  4. /
  5. Python関数の書き方

Connected

演習

関数を切り出す

大学の卒業可否を予測するモデルを開発する中で、学生の各年のGPAについてzスコア(平均からの標準偏差を示す指標)を求めるため、次のコードを書きました。これを本番品質のシステムにする準備として、重複処理を解消する必要があります。zスコアを計算する関数にまとめると改善できます。

# 各年のGPAを標準化する
df['y1_z'] = (df.y1_gpa - df.y1_gpa.mean()) / df.y1_gpa.std()
df['y2_z'] = (df.y2_gpa - df.y2_gpa.mean()) / df.y2_gpa.std()
df['y3_z'] = (df.y3_gpa - df.y3_gpa.mean()) / df.y3_gpa.std()
df['y4_z'] = (df.y4_gpa - df.y4_gpa.mean()) / df.y4_gpa.std()

注: df は pandas の DataFrame で、各行が1人の学生、各年のGPAを表す4つの列 y1_gpa、y2_gpa、y3_gpa、y4_gpa を持ちます。

指示

100 XP
  • 列のzスコアを返すように関数を完成させてください。
  • 関数を使って、生のGPAスコア(df.y1_gpa、df.y2_gpa など)から各年のzスコア(df['y1_z']、df['y2_z'] など)を計算してください。