深度学习_2_数据处理

在这里插入图片描述
import os是一个Python的内置模块,用于与操作系统进行交互。通过导入os模块,你可以使用其中提供的函数和方法来执行各种与操作系统相关的任务。

import os

os.makedirs(os.path.join('..', 'date'), exist_ok=True)##将创建一个名为date的文件夹,位于当前目录的上一级目录中

在这里插入图片描述
代码:

import os

os.makedirs(os.path.join('..', 'date'), exist_ok=True)##将创建一个名为date的文件夹,位于当前目录的上一级目录中
data_file = os.path.join('..', 'date', 'house_tiny.csv')##路径名
with open(data_file, 'w') as f:

##第一个参数是文件路径(在此处为 data_file),第二个参数 'w' 表示以写入模式打开文件。如果文件不存在,它将被创建;如果文件已存在,它将被覆盖。
    f.write("NumRooms,Alley,Price\n")
    f.write("NA,Pave,127500\n")
    f.write("2,NA,127500\n")
    f.write("NA,NA,127500\n")

在这里插入图片描述
在这里插入图片描述

import os

import pandas as pd
import numpy as np

os.makedirs(os.path.join('..', 'date'), exist_ok=True)##将创建一个名为date的文件夹,位于当前目录的上一级目录中
data_file = os.path.join('..', 'date', 'house_tiny.csv')##路径名
# with open(data_file, 'w') as f:
# ##第一个参数是文件路径(在此处为 data_file),第二个参数 'w' 表示以写入模式打开文件。如果文件不存在,它将被创建;如果文件已存在,它将被覆盖。
#     f.write("NumRooms,Alley,Price\n")
#     f.write("NA,Pave,127500\n")
#     f.write("2,NA,127500\n")
#     f.write("NA,NA,127500\n")
data = pd.read_csv(data_file)
print(data)
inputs, outputs = data.iloc[:,0:2], data.iloc[:, 2]#inputs所有行前两列,out所有行的第三列
# inputs = inputs.fillna(inputs.mean().astype(float))
numeric_columns = inputs.select_dtypes(include=[np.number]).columns  # 选择数值型的列
inputs[numeric_columns] = inputs[numeric_columns].fillna(inputs[numeric_columns].mean())  # 对数值型列进行填充

print(inputs)

在这里插入图片描述

include=[np.number] 参数指定了要选择的数据类型为数值型(即包括整数和浮点数)
np.number 是 numpy 库中定义的数值类型的父类,它包括 int、float 和 complex 等类型
.columns 属性用于获取筛选出来的数值型列的列名。它会返回一个包含列名的列表,存储在变量 numeric_columns 中。

uts[numeric_columns] 是将数据框 inputs 中的数值型列(由变量 numeric_columns 确定)赋值给数据框 uts 中相应的列。
.fillna(inputs[numeric_columns].mean()) 是对所选的数值型列进行填充操作。在这里使用了 .mean() 方法来计算每个数值型列的均值,并将缺失值用均值进行填充。

数据填充,已存在数据的均值

在这里插入图片描述

将pave和NaN变成0或1

pd.get_dummies() 函数将分类变量转换为虚拟变量(哑变量)后的结果。其中包含了三列:NumRooms、Alley_Pave 和 Alley_nan。
NumRooms 列是一个数值型列,表示房间数量。
Alley_Pave 列是一个虚拟变量列,用于表示巷道类型是否为 “Pave”,即铺设路面。
Alley_nan 列是一个虚拟变量列,用于表示巷道类型是否为缺失值。
可以看出:
第一行数据中,房间数量为 3.0,巷道类型为 “Pave”(True),而不是缺失值(False)。
第二行数据中,房间数量为 2.0,巷道类型不是 “Pave”(False),而是缺失值(True)。
第三行数据中,房间数量为 4.0,巷道类型不是 “Pave”(False),而是缺失值(True)。
第四行数据中,房间数量为 3.0,巷道类型不是 “Pave”(False),而是缺失值(True)。
这种转换可以方便地将分类变量表示为虚拟变量,以便在机器学习等任务中使用。

代码:

inputs = pd.get_dummies(inputs, dummy_na =  True, dtype= int)

print(inputs)

在这里插入图片描述

代码:

x, y = torch.tensor(inputs.values), torch.tensor(outputs.values)##将csv文件转变成一个张量
print(x)
print(y)

在这里插入图片描述

至此整个CSV文件就化为了一个张量

在这里插入图片描述
在这里插入图片描述
完整代码:

import torch

import os

import pandas as pd
import numpy as np

os.makedirs(os.path.join('..', 'date'), exist_ok=True)##将创建一个名为date的文件夹,位于当前目录的上一级目录中
data_file = os.path.join('..', 'date', 'house_tiny.csv')##路径名
# with open(data_file, 'w') as f:
# ##第一个参数是文件路径(在此处为 data_file),第二个参数 'w' 表示以写入模式打开文件。如果文件不存在,它将被创建;如果文件已存在,它将被覆盖。
#     f.write("NumRooms,Alley,Price\n")
#     f.write("NA,Pave,127500\n")
#     f.write("2,NA,127500\n")
#     f.write("NA,NA,127500\n")
data = pd.read_csv(data_file)
print(data)
inputs, outputs = data.iloc[:,0:2], data.iloc[:, 2]#inputs所有行前两列,out所有行的第三列
# inputs = inputs.fillna(inputs.mean().astype(float))
numeric_columns = inputs.select_dtypes(include=[np.number]).columns  # 选择数值型的列
inputs[numeric_columns] = inputs[numeric_columns].fillna(inputs[numeric_columns].mean())  # 对数值型列进行填充

print(inputs)

inputs = pd.get_dummies(inputs, dummy_na =  True, dtype= int)

print(inputs)

#所有缺失的值变成了值那么就可以转换成张量

x, y = torch.tensor(inputs.values), torch.tensor(outputs.values)##将csv文件转变成一个张量
print(x)
print(y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值