python - 根据另一列中的值估算熊猫数据框的缺失列?
问题描述
我正在对来自 Kaggle 的 Titanic 数据集进行一些数据清理。我目前正在尝试做的是估算缺失的年龄值。我没有尝试使用年龄列的通用中位数进行估算,而是尝试通过根据共享相同标题的行的年龄列的中位数估算缺失的年龄来更具体。
我尝试了以下方法(引发“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)
有没有更好的方法来做到这一点?我使用的代码会引发警告消息,而且读/写/查看也很混乱,所以我希望在某个地方有更优雅的解决方案!
解决方案
推荐阅读
- python - 更新机器人而不关闭它不和谐 python
- java - Arrays-Java,与数组相同位置的元素之和
- java - Java 11 HttpClient 通过代理对 HTTPS 资源的请求
- python - for循环中字典的赋值
- macos - 带有 iconv 选项的 rsync 消息
- reactjs - 反应:当父母的价值改变时,孩子不会更新
- android - 将 Jetpack Compose State 委托语法与数据类一起使用
- c++ - boost::property_tree C++ JSON Writer,不需要的数字格式
- python - 在其他索引中添加一个新列
- mongodb - Mongoose findOneAndUpdate 如何返回最后推送的元素