1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【Pandas】一文入门Pandas处理csv文件数据集(神经网络/机器学习算法数据预处理)

【Pandas】一文入门Pandas处理csv文件数据集(神经网络/机器学习算法数据预处理)

时间:2022-09-05 21:26:04

相关推荐

【Pandas】一文入门Pandas处理csv文件数据集(神经网络/机器学习算法数据预处理)

Motivation

和某个大佬采集的数据是csv格式的,之前没处理过csv格式的数据。拿来写神经网络训练的时候踩了不少坑,这里记录一下,也方便后来人学习。

Pandas处理csv文件

处理csv文件的包应该有不少,这里就做一个pandas的教程了(其他的没用过hhhh)。这里我以我的一个数据为例演示一些常用的处理方法。

文件读取

语句:

origin_data = pd.read_csv("origin_data.csv", na_values=" NaN")

csv文件中的空值(NaN)是什么?这里是一个大坑。建议大家在读csv的时候用我下面这个参数,把缺失的值统一设置为"NaN"。这样在后面如果需要手动过滤掉缺失值的时候可以索引到位置。之前试过,如果不设置这个参数,缺失值不是False、0、"NaN"中的任何一个。结果:

dataframe索引某一列

pandas读进来的csv数据会被封装成一个叫dataframe的格式,这种格式可以转为numpy数组。我们先来看如何操作dataframe。

语句:使用data.name来根据标签索引某一列。

origin_data.Height

结果:

删除某一列

语句:del关键字加标签删除某一列

del origin_data["Weight change"]

结果:可以看到"Weight change"一列已经被删除

删除缺失值所在的行/列

对于缺失值,一般来说可以采用插值的办法补全或直接丢弃该条数据。这里以删除NaN值所在的行为例做演示。

语句:.dropna()方法,默认删除有NaN值的行。可以设置.dropna(axis=1)删除有NaN值的列。其他用法可以自行查阅。这个用法是最常用的。

origin_data = origin_data.dropna()

结果:可以看到行变少了,没有NaN值了。

修改索引

在对数据做了一些处理之后,数据的索引很有可能就直接乱掉了。比如这里:我们删掉了一些行,所以索引就是不连续的了。这时候如果我们按照索引去遍历数据就会报错。因此一般在数据处理完后都要重置一下索引。

语句:这里重点说一下drop参数。drop参数为True表示直接丢掉索引列不要了,然后重置顺序。drop参数为False表示重置索引,并保留索引列。

origin_data = origin_data.reset_index(drop=True)

结果:

按条件修改值

我们在做数据预处理的时候,需要把一些非数字的值转为数字。比如性别、省市等。这里以性别为例,我希望把M/F转化为0/1,以便神经网络来处理。

语句:.loc[row, flag]获取需要索引的数据,而后通过条件判断来修改值

for i in range(len(origin_data)):origin_data.loc[i, 'Sex'] = 1 if origin_data.loc[i, 'Sex'] == "F" else 0

结果:这里我改了两列的数据,结果如图所示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。