pandas中read_csv的缺失值处理方式

pandas数据分析库中,read_csv()函数用于读取以逗号分隔的(csv)文件格式。在处理CSV文件时我们经常会遇到缺失值这个问题,下面是pandasread_csv的缺失值处理方式的完整攻略。

1. 缺失值的类型

pandas中的缺失值分为两种类型:

  • NaN:表示缺失数值的特殊浮点数,即“Not a Number”。
  • None:表示缺失值的Python对象。

2. 参数说明

read_csv()函数的主要参数如下:

  • filepath_or_buffer:CSV文件的路径或文件对象。
  • sep:指定列与列之间的分隔符,默认为逗号(,)。
  • header:指定数据文件中的哪一行作为列名,默认为0,即第一行作为列名。
  • index_col:指定数据文件中的哪一列作为索引列。
  • usecols:选择需要读取的列。
  • na_values:指定哪些值应该被识别为缺失值。

3. 缺失值的处理方式

pandas中,可以使用以下方法处理缺失值:

3.1. 默认处理方式

当数据文件中存在缺失值时,read_csv()函数默认将缺失值识别为NaN,对于NaN值,有pandas默认的处理方式:

import pandas as pd

df = pd.read_csv("data.csv")

print(df.isnull().sum())

上述代码中的isnull()函数将返回一个布尔类型的数据框,值为True的表示缺失值,False表示不是缺失值;再调用sum()函数进行求和操作即可在终端中输出数据集中每个列的缺失值总数。

3.2. 自定义处理方式

除了使用默认的方式外,pandas中提供了若干种自定义处理缺失值的方式:

3.2.1. 删除缺失值

当数据文件中有过多的缺失值时,可以使用dropna()函数删除行或列。

import pandas as pd

df = pd.read_csv("data.csv")

# 删除含有缺失值的行,默认删除含有任何缺失值的行
df.dropna()

# 删除含有缺失值的列,默认删除含有任何缺失值的列
df.dropna(axis = 1)

3.2.2. 填充缺失值

当数据分析中存在缺失值时,我们可以使用fillna()函数将缺失值填充为其他的数值。

import pandas as pd

df = pd.read_csv("data.csv")

# 将缺失值填充为0
df.fillna(0)

# 将缺失值填充为均值
df.fillna(df.mean())

# 将缺失值填充为中位数
df.fillna(df.median())

上述代码中的fillna()函数分别将缺失值填充为了0、均值以及中位数。

4. 示例说明

为了更好的理解read_csv的缺失值处理方式,以下提供两个示例说明。

4.1. 示例1

假设我们有以下的数据文件data.csv

year,sex,population
2019,M,2404
2019,F,2414
2018,M,2241
2018,F,2277
2017,M,2106
2016,F,2181
2015,M,2033
2014,F,2120

这个文件中没有缺失值,代码如下:

import pandas as pd

df = pd.read_csv("data.csv")

print(df.isnull().sum())

输出结果为:

year          0
sex           0
population    0
dtype: int64

由于数据文件中不存在缺失值,所以输出结果中三列对应的值都为0。

4.2. 示例2

继续以data.csv文件为例,现在将其中一个数据设为缺失值,修改后文件如下:

year,sex,population
2019,M,2404
2019,F,2414
2018,M,2241
2018,F,2277
2017,M,2106
2016,F,
2015,M,2033
2014,F,2120

现在,对于缺失值,我们采用均值填充的方法进行处理,代码如下:

import pandas as pd

df = pd.read_csv("data.csv")

# 将缺失值填充为均值
df.fillna(df.mean(), inplace=True)

print(df.isnull().sum())

输出结果为:

year          0
sex           0
population    0
dtype: int64

由于缺失值已经被填充了均值,所以输出结果中三列对应的值都为0。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas中read_csv的缺失值处理方式 - Python技术站

(1)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • python 实现目录复制的三种小结

    Python 实现目录复制的三种小结 在 Python 中,实现目录复制有很多种方法,本文将介绍三种常用的方法。 方法一:使用 shutil 模块 最简单的方法就是使用 Python 自带的 shutil 模块进行目录复制。这个模块提供了很多实用的函数,其中包括 copytree() 函数可以用来实现目录复制。 示例1 import shutil # 定义源…

    python 2023年6月3日
    00
  • Python和Pycharm 环境部署详细步骤

    下面是Python和Pycharm环境部署的详细步骤攻略。 环境部署步骤 1. 安装Python 首先,需要从Python官网下载相应的安装包进行安装。在网站主页(https://www.python.org/)可以看到“Downloads”按钮。点击“Downloads”按钮后,页面会自动跳转到下载页面。选择对应的操作系统,下载相应的Python版本的安装…

    python 2023年5月30日
    00
  • Python groupby()切分迭代器

    Python中的itertools.groupby()方法是用来对迭代器进行分组的,可以根据特定的关键字对迭代器进行切分。这个方法常常用来对数据进行聚合、统计、分组操作。 groupby()方法的基本使用 groupby()方法的语法结构如下: itertools.groupby(iterable, key=None) 它接收两个参数,其中iterable是…

    python-answer 2023年3月25日
    00
  • pandas实现excel中的数据透视表和Vlookup函数功能代码

    下面开始详细讲解“pandas实现excel中的数据透视表和Vlookup函数功能代码”的完整实例教程。 概述 在数据分析中,我们经常需要快速进行汇总和聚合操作,这就需要使用数据透视表(pivot table);另外,在数据合并的过程中,我们可能需要使用Vlookup函数,来从一个表格中查找并提取某些数据,然后和另一个表格进行合并。这两个操作在Excel中非…

    python 2023年5月14日
    00
  • Python 相对路径报错:”No such file or directory”‘原因及解决方法

    当我们在Python编程过程中,有时会遇到相对路径报错的问题,例如”No such file or directory”。这通常是由于相对路径不正确或文件不存在等因引起的。以下是一些常见的相对路径报错的解决案: 1. 检查相对路径 如果在Python编程过程中到了类似以下的报错: FileNotFoundError: [no 2] No such file …

    python 2023年5月13日
    00
  • python中itertools模块使用小结

    Python中itertools模块使用小结 Python中itertools是一个标准库,用于生成迭代器的函数和无限迭代器。它提供了各种有用的迭代器用于有效地对迭代器工作。下面是一些最常用的itertools函数: itertools.count(start=0, step=1) 生成从start开始的连续整数,步骤为step。 import iterto…

    python 2023年6月3日
    00
  • python爬虫_微信公众号推送信息爬取的实例

    Python爬虫:微信公众号推送信息爬取的实例 微信公众号是一个非常有用的信息来源,但是手动查看每个公众号的推送信息是非常耗时的。在这种情况下,使用Python爬虫可以快速地获取公众号的推送信息。本攻略将介绍Python爬虫微信公众号推送信息爬取的完整攻略,包括数据获取、数据处理、数据存储和示例。 步骤1:获取数据 在Python中,我们可以使用reques…

    python 2023年5月15日
    00
  • Python3中小括号()、中括号[]、花括号{}的区别详解

    下面是“Python3中小括号()、中括号[]、花括号{}的区别详解”的攻略: 小括号() 小括号在Python中通常用于表明函数的调用。在函数调用时,所有传递给函数的实参都应该用小括号括起来。比如: print(‘Hello World’) 在这个例子中,print()是Python的一个内置函数,它用来在标准输出中打印一些内容。’Hello World’…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部