pandas的空数据处理方式

 更新时间:2024年09月12日 12:30:10   作者:Enzo 想砸电脑  
数据清洗是关键步骤,尤其是处理空数据,Pandas提供.isna()识别、.dropna()删除和填充函数(如使用平均值、中位数或众数)来处理数据集中的空值,以提高数据分析的准确性,有效的空数据处理可以确保数据集的完整性和可靠性

pandas空数据处理

数据清洗是对一些没有用的数据进行处理的过程。

很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要使数据分析更加准确,就需要对这些没有用的数据进行处理。

数据准备

import pandas as pd

data = pd.read_csv(r'../input/pandas/property-data.csv')
data

1、判断空值 .isna()

data.isna()

对比可以看出:Pandas 把 NaN 当作空数据,na 和 – 不是空数据

我们可以在读取数据的时候,指定哪些属于空数据

data = pd.read_csv('../input/pandas/property-data.csv', na_values = ["NaN", "na", "--"])
data.isna()

#  统计每个特征的空值的数量,再按照空值数量降序排列
data.isna().sum().sort_values(ascending=False)

2、空值删除 .dropna()

如果我们要删除包含空字段的行,可以使用 dropna() 方法,语法格式如下

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

参数说明:

  • axis:默认为 0,表示逢空值剔除整行,如果设置参数 axis=1 表示逢空值去掉整列。
  • how:默认为 ‘any’ ,如果一行(或一列)里任何一个数据有出现 NA 就去掉整行,如果设置 how=‘all’ , 一行(或列)都是 NA 才去掉这整行。
  • thresh:设置需要多少非空值的数据才可以保留下来的。
  • subset:设置想要检查的列。如果是多个列,可以使用列名的 list 作为参数。
  • inplace:如果设置 True,将计算得到的值直接覆盖之前的值并返回 None,修改的是源数据。

假设我们要删掉 ‘ST_NUM’ 和 ‘NUM_BEDROOMS’ 中有空值的行, 并且直接在原数据里面删 ( inplace=True )

data.dropna(subset=['ST_NUM', 'NUM_BEDROOMS'], inplace=True)
data

3、空值替换 .dropna()

data['NUM_BEDROOMS'].fillna('0.0', inplace = True)
data

除了直接指定常数替换,常用的替换空单元格的方法是计算列的均值(mean:所有值加起来的平均值)、中位数值(median 排序后排在中间的数)或众数(mode 出现频率最高的数)。

1) 用平均值填充

x = data["ST_NUM"].mean()
data["ST_NUM"].fillna(x, inplace = True)
data

2) 用中位数填充

```python
x = data["ST_NUM"].median()
data["ST_NUM"].fillna(x, inplace = True)
data

3) 用众数填充

x = data["ST_NUM"].mode()
data["ST_NUM"].fillna(x, inplace = True)
data

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python爬虫框架scrapy实现的文件下载功能示例

    Python爬虫框架scrapy实现的文件下载功能示例

    这篇文章主要介绍了Python爬虫框架scrapy实现的文件下载功能,结合实例形式分析了scrapy框架进行文件下载的具体操作步骤与相关实现技巧,需要的朋友可以参考下
    2018-08-08
  • Python实现炸金花游戏的示例代码

    Python实现炸金花游戏的示例代码

    本文主要介绍了Python实现炸金花游戏的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Python机器学习从ResNet到DenseNet示例详解

    Python机器学习从ResNet到DenseNet示例详解

    ResNet极大地改变了如何参数化深层网络中函数的观点。稠密连接网络(DenseNet)在某种程度上是ResNet的逻辑扩展。让我们先从数学上了解下
    2021-10-10
  • Python学习之yaml文件的读取详解

    Python学习之yaml文件的读取详解

    yaml其实也类似于 json、txt ,它们都属于一种文本格式。在我们的实际工作中, yaml 文件经常作为服务期配置文件来使用。本文将为大家介绍一些Python读取yaml文件的方法,需要的可以参考一下
    2022-03-03
  • PyQt5+PyQt5Designer的安装步骤

    PyQt5+PyQt5Designer的安装步骤

    本文主要介绍了PyQt5+PyQt5Designer的安装步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 六个Python编程最受用的内置函数使用详解

    六个Python编程最受用的内置函数使用详解

    在日常的python编程中使用这几个函数来简化我们的编程工作,经常使用能使编程效率大大地提高。本文为大家总结了六个Python编程最受用的内置函数,感兴趣的可以了解一下
    2022-07-07
  • Python Watchdog实现实时监控文件系统

    Python Watchdog实现实时监控文件系统

    Python Watchdog是一个优秀的第三方库,用于实现高效的文件系统监控,本文将为大家详细介绍一下Python如何使用Watchdog实现实时监控文件,需要的可以参考下
    2023-11-11
  • python字典排序实例详解

    python字典排序实例详解

    这篇文章主要介绍了python字典排序实现方法,实例分析了Python字典排序的相关技巧,需要的朋友可以参考下
    2015-05-05
  • Python爬虫获取基金净值信息详情

    Python爬虫获取基金净值信息详情

    这篇文章主要介绍了Python爬虫获取基金净值信息详情,文章基于钱两篇文章的内容围绕python的相关资料展开详细介绍,需要的小伙伴可以参考一下
    2022-05-05
  • python导入导出redis数据的实现

    python导入导出redis数据的实现

    本文主要介绍了python导入导出redis数据的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02

最新评论