kaggleのタイタニックチュートリアルで年齢の欠損値を敬称ごとの平均で埋めたくて以下のようにしたのですが、埋めることができません。色々試したのですが、
fillna(MrAve, inplace=True)だけではなく、inplaceをFalseにして直接埋める形にしても埋めることができませんでした、2時間ほど格闘したのですが分からなかったので、教えていただけると幸いです。
実際にデータフレームを出力してみると、欠損値に値が入らず、元のままの状態になります。
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import os
import csv as csv
path = "../input/"
train_df = pd.read_csv(path+"train.csv", header=0)
train_df['honorific'] = train_df['Name'].map(lambda x: x.split(', ')[1].split('. ')[0])
train_df['honorific'].value_counts()
print(train_df["Age"].mean())
MrAve = train_df.query('honorific == "Mr"')["Age"].mean()
MissAve = train_df.query('honorific == "Miss"')["Age"].mean()
MrsAve = train_df.query('honorific == "Mrs"')["Age"].mean()
MasterAve = train_df.query('honorific == "Master"')["Age"].mean()
DrAve = train_df.query('honorific == "DrAve"')["Age"].mean()
RevAve = train_df.query('honorific == "RevAve"')["Age"].mean()
print(MrAve)
Mr_df = train_df.query('honorific == "Mr"')
train_df[train_df["honorific"] == "Mr"]["Age"].fillna(MrAve, inplace=True)
//↑ここができない
train_df
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
hayato08120904
2019/04/17 13:30
2019/04/17 13:36
2019/04/17 13:41
hayato08120904
2019/04/17 13:43
2019/04/17 13:56 編集
hayato08120904
2019/04/19 01:09 編集