动手学习深度学习-pandas dataframe转为张量

发布时间 2023-04-26 16:01:50作者: Bonne_chance

动手学习深度学习-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