问题:将csv数据转换成张量格式
1.1 读取数据集
先创建一个数据集,然后读出。
os.makedirs(os.path.join("..", "data"), exist_ok=True)
data_file = os.path.join("..", "data", "house_test.csv")
with open(data_file, 'w') as f:
f.write('NumRooms,Room_age,Price\n')
f.write('NA, 10, 188888\n') # 每⾏表⽰⼀个数据样本
f.write('3, 15, 166666\n')
f.write('4, 20, 178100\n')
f.write('NA, NA, 140000\n')
data = pd.read_csv(data_file)
data
注:Python os.makedirs函数介绍
os.makedirs(name, mode=0o777, exist_ok=False)
- 作用: 用来创建多层目录,单层使用os.mkdir
- 参数说明:
- name:创建的目录名
- mode:要为目录设置的权限数字模式,默认的模式为 o777 (八进制),为所有用户开通读、写、执行权限
- exist_ok:是否在目录存在时触发异常。
- exist_ok=False(默认值),在目标目录已存在的情况下触发FileExistsError异常
- exist_ok=True,在目标目录已存在的情况下不会触发FileExistsError异常。
1.2 处理缺失值
- 连续型数据用均值填充
inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = inputs.fillna(inputs.mean())
inputs
- 离散型数据编码成one_hot
inputs = pd.get_dummies(inputs, dummy_na=True)
inputs
1.3 转换成张量
X, y = torch.tensor(inputs.values), torch.tensor(outputs.values)
X, y