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

小丫么小阿豪 2022-08-06 05:26:09 阅读数:26

pandas入门一文处理

Motivation

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

Pandas处理csv文件

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

文件读取

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

dataframe索引某一列

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

  1. 语句: 使用data.name来根据标签索引某一列。
    origin_data.Height
    
  2. 结果:
    在这里插入图片描述

删除某一列

  1. 语句:del关键字加标签删除某一列
    del origin_data["Weight change"]
    
  2. 结果: 可以看到"Weight change"一列已经被删除
    在这里插入图片描述

删除缺失值所在的行/列

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

  1. 语句:.dropna()方法,默认删除有NaN值的行。可以设置.dropna(axis=1)删除有NaN值的列。其他用法可以自行查阅。这个用法是最常用的。
    origin_data = origin_data.dropna()
    
  2. 结果: 可以看到行变少了,没有NaN值了。
    在这里插入图片描述

修改索引

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

  1. 语句: 这里重点说一下drop参数。drop参数为True表示直接丢掉索引列不要了,然后重置顺序。drop参数为False表示重置索引,并保留索引列。
    origin_data = origin_data.reset_index(drop=True)
    
  2. 结果:
    在这里插入图片描述
    在这里插入图片描述

按条件修改值

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

  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
    
  2. 结果: 这里我改了两列的数据,结果如图所示
    在这里插入图片描述
版权声明:本文为[小丫么小阿豪]所创,转载请带上原文链接,感谢。 https://blog.csdn.net/qq_43426078/article/details/125305799