検閲データの前処理
あなたはマダライルカの寿命を研究する海洋生物学者です。イルカの誕生日と死亡日の履歴データにアクセスできます。タグ付けした一部のイルカは別の海域に移動し、研究所は追跡を失いました。別の群れ(ポッド)からの移住個体もおり、正確な誕生日が不明な場合があります。今も生存している個体もいます。
- 誕生日が
NaNなら、そのイルカは移住個体です。 - 死亡日が
NaNなら、そのイルカは逃げたか、もしくは存命です。
DataFrameはdolphin_dfです。イルカの生存時間が検閲されているかを示す新しい列observedを作成するために、関数check_observedに適切な値を記入し、.apply()でdolphin_dfに適用してください。
pandasとnumpyはそれぞれpdとnpとして読み込まれています。
この演習はコースの一部です
Pythonで学ぶSurvival Analysis
演習の手順
- 関数
check_observedを作成し、データ点が検閲されている場合は0、それ以外は1を返すようにします。 - 作成した関数
check_observedを使って、検閲フラグ列observedを作成します。 - コンソールに
observed列の平均値を出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create a function to return 1 if observed 0 otherwise
def check_observed(row):
if pd.isna(row['birth_date']):
flag = ____
elif pd.isna(row['death_date']):
flag = ____
else:
flag = ____
return ____
# Create a censorship flag column
dolphin_df[____] = dolphin_df.apply(____, axis=1)
# Print average of observed
print(np.average(____))