始める無料で始める

関数を切り出す

大学の卒業可否を予測するモデルを開発する中で、学生の各年の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_gpay2_gpay3_gpay4_gpa を持ちます。

この演習はコースの一部です

Python関数の書き方

コースを見る

演習の手順

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

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

def standardize(column):
  """Standardize the values in a column.

  Args:
    column (pandas Series): The data to standardize.

  Returns:
    pandas Series: the values as z-scores
  """
  # Finish the function so that it returns the z-scores
  z_score = (____ - ____.____()) / ____.____()
  return z_score

# Use the standardize() function to calculate the z-scores
df['y1_z'] = ____
df['y2_z'] = ____
df['y3_z'] = ____
df['y4_z'] = ____
コードを編集して実行