数据预处理

os.makedirs()   方法用于递归创建目录

os.path.isfile(path)
如果path是一个存在的文件,返回True。否则返回False

os.path.join(path1[, path2[, ...]])
将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

>>> import os
>>> path = "F:/gts/gtsdate/"
>>> b = os.path.join(path,"/abc")
>>> b
'F:/abc'
>>> c= os.path.join(path,"abc")
>>> c
'F:/gts/gtsdate/abc'

>>> os.path.join('c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'

1.将数据集按行写入CSV文件

import os

os.makedirs(os.path.join('D:\\随意\\source\\python', 'deepdate'), exist_ok=True)
data_file = os.path.join('D:\\随意\\source\\python', 'deepdate', '数据集.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')

2.读取

import pandas as pd

data = pd.read_csv(data_file)
print(data)

 3.处理缺失值

mean()函数功能:求取均值

numpy.mean(a, axis=None, dtype=None, out=None, keepdims=<class numpy._globals._NoValue at 0x40b6a26c>)

axis 不设置值,对 m*n 个数求均值,返回一个实数

axis = 0:压缩行,对各列求均值,返回 1* n 矩阵

axis =1 :压缩列,对各行求均值,返回 m *1 矩阵

np.mean(#name) # 对所有元素求均值 

np.mean(#name,0) # 压缩行,对各列求均值

np.mean(#name,1) # 压缩列,对各行求均值

pandas中

#name.fillna()           #填充缺失值

常数填充缺失值

 DataFrame.fillna(0)       用0代替DataFrame中的缺失值NaN

字典填充

#name.fillna({0:10,1:20,2:30}    #0列10填充,1列20填充,2列30填充

inplace参数的取值:True、Falsedom

True:直接修改原对象学习

False:建立一个副本,修改副本,原对象不变(缺省默认)

 DataFrame.fillna(0,inplace=True)     #不创建副本,直接修改原对象

fillna()函数详解 - JavaShuo
  • loc用标签索引
  • iloc用列号索引
import pandas as pd
import numpy as np
from numpy import nan as NaN

df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]])
print(df1)

print(df1.iloc[0])     #取0行
print("-----")
print(df1.iloc[:,:2])  #取所有行,【0,2)列

“NaN”项代表缺失值。为了处理缺失的数据,典型的方法包括插值删除,其中插值用替代值代替缺失值。而删除则忽略缺失值。

插值:

inputs= data.iloc[:, 0:2]  #取【0,2)列
outputs = data.iloc[:, 2]  #取第二列
print(inputs)
print("------")
print(outputs)
print("------")
inputs = inputs.fillna(inputs.mean())  #input.mean()对input求均值,即¥+2=6/2=3
print(inputs)

pandas的get_dummies

pd.get_dummies(   ,     )           #离散分类

import pandas as pd
import numpy as np
from numpy import nan as NaN

df1=pd.DataFrame([[1,2,3],['x','y',2],['y',NaN,NaN],[8,8,NaN]])
print(df1)

s=pd.get_dummies(df1[0],prefix='分类')             #将df1的第一列分类,并用离散的形式表达
print(s)

 对于inputs中的类别值或离散值,我们将“NaN”视为一个类别。由于“巷子”(“Alley”)列只接受两种类型的类别值“Pave”和“NaN”,pandas可以自动将此列转换为两列“Alley_Pave”和“Alley_nan”。巷子类型为“Pave”的行会将“Alley_Pave”的值设置为1,“Alley_nan”的值设置为0。缺少巷子类型的行会将“Alley_Pave”和“Alley_nan”分别设置为0和1。

inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)

 四.转换为张量格式

import torch

X, y = torch.tensor(inputs.values), torch.tensor(outputs.values)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值