Pandas 缺失值填充的方法

直接用代码来展示[基于泰坦尼克数据]

  • 真实数据往往某些变量会有缺失值。
  • 这里,cabin有超过70%以上的缺失值,我们可以考虑直接丢掉这个变量。 – 删除某一列数据
  • 像Age这样的重要变量,有20%左右的缺失值,我们可以考虑用中位值来填补。-- 填补缺失值
  • 我们一般不提倡去掉带有缺失值的行,因为其他非缺失的变量可能提供有用的信息。-- 删除带缺失值的行

普通的方法(直接根据所需要的值来进行填充)

# 重新载入原始数据
titanic_df=pd.read_csv("titanic.csv")

# 计算所有人年龄的均值
age_median1 = titanic_df.Age.median()

# 使用fillna填充缺失值,inplace=True表示在原数据titanic_df上直接进行修改
titanic_df.Age.fillna(age_median1, inplace=True)

# 查看Age列的统计值
titanic_df.Age.describe()

考虑性别因素,分别用男女乘客各自年龄的中位数来填补(需要建立索引)

titanic_df = pd.read_csv("titanic.csv")
# 分组计算男女年龄的中位数, 得到一个Series数据,索引为Sex
age_median2 = titanic_df.groupby("Sex").Age.median()
# 设置索引为Sex
titanic_df.set_index("Sex",inplace=True)
# 使用fillna填充缺失值,根据索引值填充
titanic_df["Age"].fillna(age_median2,inplace=True)
# 重置索引,即取消Sex索引
titanic_df.reset_index(inplace=True)
titanic_df["Age"].describe()

同时考虑性别和舱位因素

# 重新载入原始数据
titanic_df=pd.read_csv("titanic.csv")

# 分组计算不同舱位男女年龄的中位数, 得到一个Series数据,索引为Pclass,Sex
age_median3 = titanic_df.groupby(['Pclass', 'Sex']).Age.median()

# 设置Pclass, Sex为索引, inplace=True表示在原数据titanic_df上直接进行修改
titanic_df.set_index(['Pclass','Sex'], inplace=True)
# 使用fillna填充缺失值,根据索引值填充
titanic_df.Age.fillna(age_median3, inplace=True)
# 重置索引,即取消Pclass,Sex索引
titanic_df.reset_index(inplace=True)

# 查看Age列的统计值
titanic_df.Age.describe()
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值