在这篇文章中,我将解释如何使用Pandas的isna技术。
我将描述该技术的作用,解释其语法,并向你展示如何使用它的清晰例子。
如果你需要学习一些具体的东西,只需点击这些链接中的一个。
让我们从快速介绍isna() 技术开始吧。
对Pandas isna的快速介绍
Pandas isna方法可以检测Python数据框架或Pandas系列中的缺失值。

如上所述,我们可以在几种不同的数据结构上使用Pandas isna,包括。
- 潘达斯系列
- 潘达斯数据框架
- 数据框架中的各个列
所以在这个意义上,这个方法在我们如何使用它方面是灵活的。
Pandas isna对于Python的数据处理非常重要
isna方法对于Python中的数据整理非常重要。
当我们整理数据时,处理缺失值是一个非常常见的问题,而且当我们分析数据或创建机器学习模型时也是如此。
事实上,当你整理或分析一个数据集时,寻找和处理缺失值是你首先要做的事情之一。
既然如此,当你在处理Python数据时,你需要一种方法来识别缺失值。
输入,Pandas isna。
isna的语法
让我们来看看isna() 技术的语法。
在这里,我们将分别看一下以下 Python 数据结构的语法。
- 数据帧
- 系列
- 数据框列
原因是,Pandas isna的语法对每一种对象类型都会略有不同。
一个简单的说明
在看语法之前,我想提醒你几件事。
首先,下面的语法解释假设你已经安装了Pandas并将其导入到你的环境中。
假设你的电脑上已经安装了它,你可以用这段代码导入Pandas。
import pandas as pd
第二,下面的语法解释假设你有一个Pandas数据框或一个Pandas系列对象可用。
说了这么多,让我们来看看语法。
系列的语法
首先,我们来看看如何在一个单独的潘达斯系列上使用isna() 的语法。
当你在一个系列上使用isna时,你首先只需输入系列对象的名称(即你分配给它的名称)。

然后,你只需输入.isna() 来调用这个方法,就像你在 Python 上调用任何其他方法一样。
这就是它的全部内容。
当你这样做的时候,这个方法将产生一个新的布尔真/假值系列,它将显示在原始系列中缺少的值。
数据框架语法
接下来,让我们看看如何在一个数据框架上使用isna。
数据框架的语法与上面潘达斯系列的语法非常相似。
首先,你只需输入你想操作的数据框架的名称。

然后你输入.isna() 来调用这个方法。
因此,如果你的数据框架被命名为your_dataframe ,你就输入代码your_dataframe.isna() 。
这个操作的输出将是一个与你的输入数据框架大小相同的对象。 这个输出将包含True/False值,表明哪些数据框架的值在原始数据中丢失。
列的语法
最后,我们来看看如何在数据框架的单列上使用Pandas isna的语法。
这里需要记住的是,数据框架中的单个列实际上是Pandas系列对象。 因此,如果我们使用 "点语法 "来检索一个列,那么我们就可以使用上面的语法来处理Pandas系列。
让我们来看看这是如何工作的。
首先,你可以输入数据框架的名称。
然后,你使用 "点语法 "来指定你想操作的数据框架内的各个列。

因此,将Pandas.isna() 应用于数据框架的一个列包括两个步骤。
- 用 "点语法 "从数据框架中获取该列
- 使用
.isna()方法
因此,例如,如果你有一个名为your_dataframe 的数据框架,其中包含一个名为column 的列,那么你将使用语法your_dataframe.column.isna() 来查找该特定列中的缺失值。
输出(补充说明)
很快,让我们来谈谈输出的结构和内容。
正如我上面提到的,.isna() 的输出是一个新的Pandas对象,与输入对象的大小相同。
这个新对象将包含真/假值,显示哪些值是缺失的(True 表示缺失)。
.isna() 将被认为是 "缺失 "的值类型有。
Nonenumpy.NaN
因此,空字符串(即'' )或numpy.inf ,将不计入缺失值;.isna() 将对这些值返回False 。
示例:如何在Python中检测缺失值
现在我们已经看完了语法,让我们看一下Pandas的一些例子isna().
例子
- [识别一个数据框架列中的缺失值]
- [识别整个数据框架中的缺失值]
- [计算数据框架中每一列的缺失值]
先运行这段代码
在我们运行这些例子之前,你需要进行一些初步设置。
具体来说,你需要
- 导入Pandas和Numpy
- 创建一个数据框架
让我们分别进行这些工作。
加载Pandas
首先,我们需要导入Pandas和Numpy。
import pandas as pd
import numpy as np
我们将使用Pandas创建一个数据框架,我们将使用Numpy在该数据框架内使用np.nan 创建缺失值。
创建一个数据框架
接下来,我们需要创建一个我们可以使用的数据框架。
在这里,我们将创建一个包含模拟销售数据的数据框架。
sales_data = pd.DataFrame({"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"]
,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000]
,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]})
让我们打印这个数据框架来看看它的内容。
print(sales_data)
输出。
name region sales expenses
0 William East 50000.0 42000.0
1 Emma NaN 52000.0 43000.0
2 Sofia East 90000.0 NaN
3 Markus South NaN 44000.0
4 Edward West 42000.0 38000.0
5 Thomas West 72000.0 39000.0
6 Ethan South 49000.0 42000.0
7 Olivia West NaN NaN
8 Arun West 67000.0 39000.0
9 Anika East 65000.0 44000.0
10 Paulo South 67000.0 45000.0
这个数据框,sales_data ,有四个变量。 其中两个变量包含字符数据,另外两个变量包含数字数据。
关键的是,你会注意到有些数值是缺失的(即:NaN )。
我们将使用.isna() 来检测这些缺失值。
实例1:识别数据框架列中的缺失值
首先,我们将识别一个特定列中的缺失值。
我们将识别数据框架中sales 列中的缺失值。
sales_data.sales.isna()
输出
0 False
1 False
2 False
3 True
4 False
5 False
6 False
7 True
8 False
9 False
10 False
解释
在这里,我们已经确定了sales_data 数据框架的sales 列中的缺失值。
这包括两个步骤。
- 我们使用 "点语法 "检索了
sales列。 - 然后,我们调用
.isna(),以确定该列中的缺失值。
因此,sales_data.sales 从数据框架中检索出sales 列。
然后,语法.isna() ,以确定缺失的值。
注意,这段代码的输出是一个新的对象,其形状与sales 列相同。 还注意到,在sales 列中缺少数值的地方,输出显示True 。 否则,输出显示False 。
实例2:识别整个数据框架中的缺失值
接下来,我们要找出整个数据框架中的缺失值。
为了做到这一点,我们将输入数据框架的名称,然后调用.isna() 。
sales_data.isna()
输出
name region sales expenses
0 False False False False
1 False True False False
2 False False False True
3 False False True False
4 False False False False
5 False False False False
6 False False False False
7 False False True True
8 False False False False
9 False False False False
10 False False False False
解释
这应该很容易理解。
在这里,我们在整个sales 数据框上调用了.isna() 方法。
要做到这一点,我们只需键入数据框架的名称,然后键入.isna() 来调用该方法。
在输出中,你会注意到输入的每一个值都有布尔型的真/假值。 在sales 数据框中缺少数值的地方,输出显示True ,否则输出显示False 。
实例3:计算数据框架每一列中的缺失值
最后,让我们计算一下数据框架每一列中的缺失值。
为了实现这个目标,我们将使用两个Pandas方法。
- Pandas isna
- 潘达的sum
我们将使用isna来识别缺失的值,并使用Pandas sum来计算它们。
(sales_data
.isna()
.sum()
)
输出
name 0
region 1
sales 2
expenses 2
dtype: int64
解释
仔细看一下输出。 输出显示了输入数据框架中每一列的缺失值的计数。
为了达到这个目的,我们需要调用两个Pandas方法,一个接着一个。
首先,我们调用.isna() 方法,确定缺失值。
然后,我们调用.sum() 来计算它们。
此外,注意我们使用了一个特殊的语法技巧。 我们把整个方法链放在括号里。 而且,我们把不同的方法放在不同的行上。
我有时会把这称为Pandas方法链,尽管请记住,你几乎可以把它用于任何类型的Python方法。
这是一个有点非传统的技术,但在你进行数据处理或数据分析时,是非常强大的。 如果你知道如何正确地使用这种技术,你可以把多个方法(很多都超过2个)连锁起来,进行复杂的数据操作。 这也使得阅读和调试你的代码变得更加容易。
这是掌握Pandas的秘诀之一,你真的应该学习一下。