目录
首先创建一个csv文件
保存在该文件夹下
import torch
import os
import pandas as pd
with open('data.csv','w') as f:#创建文件
f.write('NumRooms,Ally,Price\n')#写入文件
f.write('NA,Pave,127500\n')
f.write('4,NA,178100\n')
f.write('NA,NA,14000\n')
读取文件
使用pandas库读取文件
reader=pd.read_csv('data.csv')
print(reader)
可以得到结果
NumRooms Ally Price
0 NaN Pave 127500
1 4.0 NaN 178100
2 NaN NaN 14000
其中NaN中空的数据
补全连续空值
inputs,outputs=reader.iloc[:,0:2],reader.iloc[:,2]
inputs=inputs.fillna(inputs.mean(numeric_only=True))#用平均值补全
print(inputs)
得到结果
NumRooms Ally
0 4.0 Pave
1 4.0 NaN
2 4.0 NaN
离散型结果
inputs=pd.get_dummies(inputs,dummy_na=True)
print(inputs)
我们可以用类别区分
NumRooms Ally_Pave Ally_nan
0 4.0 1 0
1 4.0 0 1
2 4.0 0 1
转化为tensor向量
X,y=torch.tensor(inputs.values),torch.tensor(outputs.values)
print(X,y)
tensor([[4., 1., 0.],
[4., 0., 1.],
[4., 0., 1.]], dtype=torch.float64) tensor([127500, 178100, 14000])