根据另一列中的值估算熊猫数据框的缺失列?

时间:2020-01-25 11:31:54

标签: python pandas

我正在对Kaggle的泰坦尼克号数据集进行一些数据清理。我目前正在尝试做的是估算缺少的年龄值。我没有尝试使用年龄列的通用中位数来估算,而是通过基于年龄列的中位数为共享相同标题的行来估算缺失的年龄,从而更加具体。

我尝试了以下操作(它会抛出“ SettingWithCopyWarning”消息):

# import data
train_df = pd.read_csv('Data/train.csv', header=0)

# create title field
train_df['Title'] = train_df['Name'].str.extract(' ([A-Za-z]+)\.', expand=False)

# create boolean of rare titles
rare_titles = (train_df['Title'].value_counts() < 10)

# replace rare title values
df['Title'] = df['Title'].replace({x: 'Rare' for x in rare_titles[rare_titles].index})

# impute missing age values based on title
# ignore the for loop indent error, can't format it correctly on stackoverflow for some reason
title_list = df.Title.unique()
for title in title_list:
train_df.loc[train_df['Title']==title].Age.fillna(train_df.loc[train_df['Title']==title].Age.median(), inplace=True)

是否有更好的方法?我使用的代码会发出警告消息,而且读/写/查看也很混乱,所以我希望那里有一个更优雅的解决方案!

0 个答案:

没有答案
相关问题