动手学习深度学习-pandas dataframe转为张量
动手学习深度学习-pandas dataframe转为张量
创建数据
在当前目录的上一级目录创建csv
文件,然后写入数据
import os
os.makedirs(os.path.join('..','data'),exist_ok=True) # '..'表示上一级目录路径
data_file = os.path.join('..','data','house_tiny.csv')
with open(data_file,'w') as f:
f.write('NumRooms, Alley,Price\n')
f.write('NA,Pave,127500\n')
f.write('2,NA,106000\n')
f.write('4,NA,178100\n')
f.write('NA,NA,140000\n')
然后在当前目录的上一级目录找到data
目录及house_tiny.csv
文件
读取数据
import pandas as pd
data = pd.read_csv(data_file)
data
插播(删除空值最多的列)
na_count = dict()
for label in data.columns:
count = data[label].isna().sum()
na_count[label] = count
keys, values = list(na_count.keys()),list(na_count.values())
naValueMostIndex = keys[values.index(max(values))]
data_new = data.drop(naValueMostIndex,axis=1)
data_new
对第一列NumRooms
使用均值填充空值,对第二列Alley(巷子类型)转为2类(铺砖和非铺砖)
inputs,outputs = data.iloc[:,0:2],data.iloc[:,2]
inputs = inputs.fillna(inputs.mean())
inputs = pd.get_dummies(inputs,dummy_na=True)# 将alley列转换为两列Alley_Pave和Alley_nan
inputs
将数据转为张量
X,y = torch.tensor(inputs.values),torch.tensor(outputs.values)
X,y