在用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行的数据,然后再用来填充。
运行正确