深度学习——pandas数据预处理(预备知识)

pandas预处理原始数据 ---转换为---张量

目录

1.数据写入../data/house_tiny.csv的文件中 

2.数据读取

3.处理缺失数据

4.转换为张量


1.数据写入../data/house_tiny.csv的文件中 

import os
import pandas as pd
# 创建文件目录
os.makedirs(os.path.join('..', 'data'), exist_ok=True)
# 创建文件house_tiny.csv
data_file = os.path.join('..', 'data', 'house_tiny.csv')
# 添加数据集  NA代表数据未知的
with open(data_file, 'w') as f:
    f.write("NumRooms,Alley,price\n")  # 列名
    f.write("NA,Pave,127500\n")  # 数据样本
    f.write("2,Pave,106000\n")
    f.write("8,NA,178100\n")
    f.write("NA,NA,140000\n")

2.数据读取

data = pd.read_csv(data_file)

'''
   NumRooms Alley   price
0       NaN  Pave  127500
1       2.0   NaN  106000
2       8.0   NaN  178100
3       NaN   NaN  140000
'''

3.处理缺失数据

“NaN”项代表缺失值,常用方法是 插值法 和 丢弃法

举例 插值法

'''
   NumRooms Alley   price
0       NaN  Pave  127500
1       2.0   NaN  106000
2       8.0   NaN  178100
3       NaN   NaN  140000
'''

通过iloc()把数据分成两块 inputs是前2列,outputs是后1列。inputs缺少的数值采用均值法

intputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
# 数值域取均值mean() 插值fillna()
intputs = intputs.fillna(intputs.mean(numeric_only=True))  
   NumRooms Alley
0       5.0  Pave
1       2.0   NaN
2       8.0   NaN
3       5.0   NaN
 

对于不是数值的数据 inputs的类别值 或 离散值 将 "NaN" 看成一个类别.
不同种类的数值 变成一个特征 Pave 和NaN 两类。
intputs = pd.get_dummies(intputs, dummy_na=True)
'''
   NumRooms  Alley_Pave  Alley_nan
0       5.0           1          0
1       2.0           0          1
2       8.0           0          1
3       5.0           0          1
'''

4.转换为张量

x = torch.tensor(intputs.values)
y = torch.tensor(outputs.values)
x
'''
tensor([[5., 1., 0.],
        [2., 1., 0.],
        [8., 0., 1.],
        [5., 0., 1.]], dtype=torch.float64)
'''
y
'''
tensor([127500, 106000, 178100, 140000])
'''

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值