处理np.nan类型的缺失值| 学习笔记

简介: 快速学习处理np.nan类型的缺失值

开发者学堂课程【Python 数据分析库 Pandas 快速入门处理np.nan类型的缺失值学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/607/detail/8860


处理np.nan类型的缺失值


如何处理 nan

1.判断数据是否为 NaN : pd.isnull(df),pd.notnull(df)

2.存在缺失值 nan,并且是 np.nan:

删除存在缺失值的:dropna(inplace = False)

-注:不会修改原数据,需要接受返回值。

替换缺失值:fillna(value,inplace=True)

value:替换成的值

inplace:

-True:会修改原数据

-False:不替换修改原数据,生成新的对象

3.不是缺失值 nan,有默认标记的


处理缺失值实例  

第一步:判断是否存在 nan 类型的缺失值

In:

import pandas as pd

movie = pd.read_csv ( " ./IMDB/IMDB-Movie-Data.csv " )

movie.head( )    

Out:

In:

pd .isnul1(movie)

Out:

  //这两种方法中间有省略部分,很难看到缺失值

In:

import numpy as np

np.any ( pd.isnull (movie) )  

Out:

True   //返回 True,说明数据中存在缺失值

In:

np.all ( pd.notnul1 (movie) )  

Out:

False   //返回 False,说明数据中存在缺失值

In:

pd.isnull ( movie ).any ( )Rank

Out:

Title

False

Genre

False

Description

False

Director

False

Actors

False

Year

False

Runtime ( Minutes )

False

Rating

False

Votes

False

Revenue (Millions )

True

Metascore

True

dtype: bool   //显示每一个字段是否存在缺失值

In:

pd.notnull ( movie).all()

Out:

Title

True

Genre

True

Description

True

Director

True

Actors

True

Year

True

Runtime ( Minutes )

True

Rating

True

Votes

True

Revenue (Millions )

False

Metascore

False

dtype: bool   //同上

第二步:缺失值处理

方法1∶删除含有缺失值的样本

In:

datal =movie.dropna ()

pd.notnull ( movie ).all()

Out:

Title

True

Genre

True

Description

True

Director

True

Actors

True

Year

True

Runtime ( Minutes )

True

Rating

True

Votes

True

Revenue (Millions )

False

Metascore

False

In:

pd.notnull ( movie ).all()

Out:

Title

True

Genre

True

Description

True

Director

True

Actors

True

Year

True

Runtime ( Minutes )

True

Rating

True

Votes

True

Revenue (Millions )

True

Metascore

True

方法2:替换

In:

//含有缺失值的字段

//Revenue (Millions )

//Metascore

movie["Revenue (Millions)"].fillna(movie["Revenue(Millions) " ].mean(), inplace=True)

movie["Metascore"].fillna(movie["Metascore"].mean( ), inplace=True)

In:

pd.notnull ( movie ).all( )   //缺失值已经处理完毕,不存在缺失值

Out:

Title

True

Genre

True

Description

True

Director

True

Actors

True

Year

True

Runtime ( Minutes )

True

Rating

True

Votes

True

Revenue (Millions )

True

Metascore

True

相关文章
|
3月前
|
Python
NumPy 教程 之 NumPy 从数值范围创建数组 9
在 NumPy 教程之从数值范围创建数组中, 使用 `numpy.linspace` 可生成一维等差数组。格式: `np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)`。参数 `start` 和 `stop` 分别定义序列的起始和结束值;`num` 定义样本数量(默认50);`endpoint` 若为 `True` 则包含 `stop` 值;`retstep=True` 返回步长。
26 10
|
3月前
|
Python
NumPy 教程 之 NumPy 从数值范围创建数组 3
在 NumPy 教程之从数值范围创建数组中, 学习 `numpy.arange` 的使用。此函数格式为 `numpy.arange(start, stop, step, dtype)`,其中 `start` 是起始值(默认 0),`stop` 是终止值(不包含),`step` 为步长(默认 1)。`dtype` 参数定义返回的 ndarray 数据类型。例如, 创建浮点数序列: ```python import numpy as np x = np.arange(5, dtype=float) print(x) # 输出: [0. 1. 2. 3. 4.] ```
24 11
|
3月前
|
Python
NumPy 教程 之 NumPy 从数值范围创建数组 7
在 NumPy 教程之从数值范围创建数组中, 学习 `numpy.linspace` 的使用。此函数创建一维等差数列数组, 格式为 `np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)`。
22 7
|
3月前
|
Python
NumPy 教程 之 NumPy 从数值范围创建数组 6
在 NumPy 教程之从数值范围创建数组章节中,我们介绍了 `numpy.linspace`。此函数创建一个由等差数列组成的一维数组。格式为 `np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)`。参数包括起始值 `start`、终止值 `stop`(默认包含)、样本数量 `num`(默认50)、是否包含终点 `endpoint`(默认`True`)以及数组的数据类型 `dtype`。例如,`np.linspace(1, 10, 10)` 创建从1到10(含10)的10个等间距元素的数组。
20 4
|
3月前
|
Python
NumPy 教程 之 NumPy 从数值范围创建数组 5
在 NumPy 教程之从数值范围创建数组中,`numpy.linspace` 用于生成一维等差数列数组。
16 2
|
3月前
|
Python
NumPy 教程 之 NumPy 从数值范围创建数组 4
**NumPy 创建数组教程** - **`numpy.arange`**: 从数值范围生成 `ndarray`. - 格式: `np.arange(start, stop, step, dtype)` - 参数: - `start`: 起始值(默认0) - `stop`: 终止值(不包含) - `step`: 步长(默认1) - `dtype`: 数据类型(自动推断) - 示例: `np.arange(10, 20, 2)` 输出 `[10 12 14 16 18]`. 总计字符数: 236
18 2
|
3月前
|
Python
NumPy 教程 之 NumPy 从数值范围创建数组 2
在 NumPy 教程中,我们学习如何使用 `numpy.arange` 从数值范围创建数组。函数格式为 `numpy.arange(start, stop, step, dtype)`,其中: - `start`: 起始值(默认为 0), - `stop`: 终止值(不包含), - `step`: 步长(默认为 1), - `dtype`: 数据类型(默认使用输入数据类型). 示例代码创建了一个从 0 到 4 的数组: ```python import numpy as np x = np.arange(5) print(x) ``` 输出: `[0 1 2 3 4]`.
15 2
|
3月前
|
Python
NumPy 教程 之 NumPy 从数值范围创建数组 11
在 NumPy 教程之从数值范围创建数组中,`numpy.logspace` 用于生成等比数列 参数包括: - `start`: 序列起始值 (`base ** start`)。 - `stop`: 终止值 (`base ** stop`); 包含与否取决于 `endpoint`。 - `num`: 样本数 (默认50)。 - `endpoint`: 决定是否包含 `stop` 值 (默认 `True`)。 - `base`: 对数底数 (默认10)。 - `dtype`: 数据类型。
14 0
|
3月前
|
Python
NumPy 教程 之 NumPy 从数值范围创建数组 12
在 NumPy 教程之从数值范围创建数组中,我们介绍 `numpy.logspace`,它创建基于对数等比数列的数组。格式为 `np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)`。
14 0
|
5月前
|
数据采集 数据挖掘 数据处理
DataFrame 的缺失值处理:填充、删除与插值
【5月更文挑战第19天】DataFrame数据处理中,面对缺失值问题,常用方法包括填充(如固定值、平均值)和删除。插值是一种有效手段,如线性插值适合时间序列数据。根据数据特性和分析目标,可组合使用多种方法,如先填充再插值。灵活应用这些策略能提升数据质量和分析准确性,为决策提供可靠支持。
158 2