Pandas 计算每行缺失/NaN值的个数

Pandas 计算每行缺失/NaN值的个数

在本文中,我们将介绍如何使用Pandas计算数据表中每行缺失/NaN值的个数。在数据分析的实践中,我们时常需要对数据表的缺失值进行处理和分析,因此了解如何计算每行缺失/NaN值的个数是非常有帮助的。

阅读更多:Pandas 教程

生成数据表

首先我们需要生成一个简单的数据表,其中包含一些缺失值和NaN值。

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'Age': [25, np.NaN, 21, 27], 
        'Gender': ['Female', 'Male', np.NaN, 'Male'],
        'City': ['London', 'Paris', 'New York', np.NaN]}

df = pd.DataFrame(data)
print(df)
Python

输出结果如下:

      Name   Age  Gender      City
0    Alice  25.0  Female    London
1      Bob   NaN    Male     Paris
2  Charlie  21.0     NaN  New York
3    David  27.0    Male       NaN
Python

计算每行缺失/NaN值的个数

一旦有了数据表,我们可以使用.isnull().sum()来计算每行缺失/NaN值的个数。.isnull()函数返回一个布尔值DataFrame,其中缺失/NaN值对应的位置是True,非缺失/NaN值对应的位置是False。.sum()函数可以直接对布尔值DataFrame进行求和操作。

nan_count = df.isnull().sum(axis=1)
print(nan_count)
Python

输出结果如下:

0    0
1    1
2    2
3    1
dtype: int64
Python

结果表明,第一行没有缺失/NaN值,第二行和第四行各有一个缺失/NaN值,第三行有两个缺失/NaN值。

添加缺失值统计列

虽然上面的代码已经计算了每行缺失/NaN值的个数,但是我们希望将这个结果添加为一个新的列到原始数据表中,方便后续分析使用。

df['NaN Count'] = df.isnull().sum(axis=1)
print(df)
Python

输出结果如下:

      Name   Age  Gender      City  NaN Count
0    Alice  25.0  Female    London          0
1      Bob   NaN    Male     Paris          1
2  Charlie  21.0     NaN  New York          2
3    David  27.0    Male       NaN          1
Python

我们成功地添加了一个新列NaN Count到数据表中,它记录了每行的缺失/NaN值的个数。

过滤缺失值过多的行

有时候,我们可能需要从数据表中删除缺失值特别多的行。这可以通过筛选NaN Count列来实现。

df_filtered = df[df['NaN Count'] < 2]
print(df_filtered)
Python

输出结果如下:

    Name   Age  Gender    City  NaN Count
0  Alice  25.0  Female  London          0
1    Bob   NaN    Male   Paris          1
3  David  27.0    Male     NaN          1
Python

这里我们选择保留NaN Count小于2的行,即所有行都会被保留。

总结

Pandas是一个强大的数据分析工具,它提供了丰富的功能和灵活的操作方式。在本文中,我们介绍了如何使用Pandas计算数据表中每行缺失/NaN值的个数,并添加缺失值统计列,以及如何过滤缺失值过多的行。这些操作可以帮助我们更好地理解和处理数据表中的缺失值,做出更准确的分析和预测。希望这篇文章对您有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册