Python——finna()函数填充时有不同的数据类型

在用pandas读取的read_csv数据时,有不同类型的数据,有int有string,想使用Fillna()函数填充数据空缺:

这是原始数据,想用numrooms这列的平均值来填充numrooms这列空缺的数据。

在动手学深度学习这本书中,是这么处理的

import pandas as pd
data = pd.read_csv('house_tiny.csv',dtype={"numrooms":float})
print(data)
inputs = data.iloc[:,0:2]
outputs = data.iloc[:,2]
inputs = inputs.fillna(inputs.mean())
print(inputs)

运行之后,报错,报错原因

里面有float和str类型的值,不能直接按平均值填充,Alley行的Pava算不了平均值,如何解决?

import pandas as pd
data = pd.read_csv('house_tiny.csv',dtype={"numrooms":float})
print(data)
inputs = data.iloc[:,0:2]
outputs = data.iloc[:,2]
temp = data.iloc[:,0:1]
inputs = inputs.fillna(temp.mean(),axis = 0)
print(inputs)
inputs = pd.get_dummies(inputs,dummy_na=True)
print(inputs)

先创建一个temp来存储numroom行的数据,然后再用来填充。

运行正确

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值