我是靠谱客的博主 开朗烤鸡,最近开发中收集的这篇文章主要介绍Pytorch+pandas--动手学深度学习--数据预处理(读取csv数据+NAN值处理+类别属性的处理),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
读取csv文件
import pandas as pd
data=pd.read_csv(file_name)
- 实现汉字扩展:
data=pd.read_csv(file_name, encoding='gbk')
- 第一行不作为列名:
data=pd.read_csv(file_name, header=None)
- 文件中某几行数据不读取:用readline的方式查找不希望读取的行数,再在统一读取进来的文件中删去特定行
数据预处理
包括NAN值处理、类别属性的处理。
NAN值处理
- 固定值填充NAN值:
data=data.fillna(num)
- 均值、最大、最小值填充:
data=data.fillna(data.mean())
注意data.mean()只会对数值列进行运算,不会对字符列运算 - 去除有NAN值的行:
data=data.dropna(axis=,subset=[colNames])
axis=0去除有NAN的行,axis=1去除有NAN的列
类别属性处理
- 类别之间存在大小关系:
#创建字典,标识每个类别的数值
label_value={'L':0, 'XL':1, 'XXL':2}
#mapper_class={label:idx for idx,label in enumerate(set(data['class label']))} 实现自动提取类别信息
#data['classes']=['L','L','XL','XXL']
data['classes']=data['classes'].map(label_value)
#输出为0,0,1,2
2. 类别之间不存在大小关系,则各个类别创建为一个特征,判断它是(1)还是不是(0),也就是形成了One-hot编码
data_dummies=pd.get_dummies(data, prefix=['color'], dummy_na=True)
#color列中有几种颜色就形成几个新列,并且NAN值也形成一列判断是否存在NAN值
例子
import pandas as pd
import torch
if __name__=="__main__":
data=pd.DataFrame([['green', 'M', 10.1, 'class1'],
['red', 'L', 13.5, 'class2'],
[None, 'XL', 15.3, 'class1'],
[None, None, 15.3, 'class1']])
data.columns=['color', 'size', 'prize', 'class label']#dataframe的创建
mapper={'M':0,'L':1,'XL':2}#自定义字典mapper,用于类别转化
data['size']=data['size'].map(mapper)
mapper_class={label:idx for idx,label in enumerate(set(data['class label']))}#自动生成类别转化mapper
data['class label']=data['class label'].map(mapper_class)#有大小关系的类别->值的转化
data_dummies=pd.get_dummies(data,prefix=['color'],dummy_na=True)#对color列进行one-hot编码
data_naNum=data.isna().sum()#判断dataframe中各个元素是否为NAN,判断每列是否有NAN需要加上.any(),判断整个dataframe是否有NAN加上.all()
data_naNum=data_naNum.to_dict()#将Series->字典
place=max(data_naNum,key=data_naNum.get)#找到字典中最大值的键
data=data.fillna(data.mean())#用均值填充NAN,但非数值列不填充
data=data.dropna(axis=0,subset=['size'])#删除特定列的NAN值行
data=torch.tensor(data_dummies.values)#实现dataframe->tensor的转换
print(data)
最后
以上就是开朗烤鸡为你收集整理的Pytorch+pandas--动手学深度学习--数据预处理(读取csv数据+NAN值处理+类别属性的处理)的全部内容,希望文章能够帮你解决Pytorch+pandas--动手学深度学习--数据预处理(读取csv数据+NAN值处理+类别属性的处理)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复