深度学习-预备知识-数据的预处理
学习深度学习必须要有数据集,而在数据集的分析中,我们经常用pandas包,以下是一些简单的例子。
1.创建一个基础的数据集
使用以下代码来创建
import os
import sys
os.makedirs(os.path.join("..", "data"), exist_ok=True)
# 在项目的上级文件夹中寻找data文件夹,如果没有就创建data
data_file = os.path.join("..", "data", "house_tiny.csv")
# data_file为字符串,内容是"../data/house_tiny.csv"
with open(data_file, "w") as f:
f.write("NumRooms,Alley,Price\n") # 列名
f.write("NaN,Pave,127500\n") # 每行表示一个数据样本
f.write("2,NaN,106000\n")
f.write("4,NaN,178100\n")
f.write("NaN,NaN,140000\n")
这个是代码的路径

下面是csv文件的路径和图片

csv文件的内容

这样我们一个简单数据集就创建成功了。
再使用pandas库函数来获取csv文件内容
import pandas as pd data = pd.read_csv(data_file) print(data) # NumRooms Alley Price # 0 NaN Pave 127500 # 1 2.0 NaN 106000 # 2 4.0 NaN 178100 # 3 NaN NaN 140000
2.处理缺失值
上面的数据集有NaN,代表是缺失值。
先寻找NaN个数,使用pd.isnull()函数会返回一个矩阵,内容是True和False,如果是NaN的值,返回True,不是False
打印上面的data内容
NumRooms Alley 0 True False 1 False True 2 False True 3 True True
获取NaN个数
print("NaN缺失值的个数", pd.isnull(inputs).sum().sum()) # 判断缺失值 # NaN缺失值的个数 5
fillna函数将data中NaN数据换成1
inputs = inputs.fillna(1) print(inputs) # NumRooms Alley #0 1.0 Pave #1 2.0 1 #2 4.0 1 #3 1.0 1
浙公网安备 33010602011771号