数据预处理
2024-09-26 17:06:23 # 深度学习入门 # 预备知识

使用pandas包完成简单的数据预处理操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import pandas as pd
import torch
#手动添加数据
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')

# 读取CSV文件
data = pd.read_csv(file)
# 分离输入数据和输出数据
input_data, out_data = data.iloc[:, 0:2], data.iloc[:, 2]
# -----------------
#利用插值法处理input中丢失的NA数据
#1. 使用平均值填充非离散数据
input_data = input_data.fillna(input_data.mean())
#2. 使用get_dummies函数分离离散值
input_data = pd.get_dummies(input_data, dummy_na = TRUE)

#将处理好的数据转换为张量
x = torch.tensor(input_data.to_numpy, dtype = torch.float)
y = torch.tensor(output_data).float()

#-----------------
#使用删除法删除掉NA数目最多的列
del_cols =
input_data.isnull().sum().sort_values(dsecending = false)
del input_data[del_cols.index[0]]#根据列名删除