Pandas 过滤空值

Pandas 过滤空值

在本文中,我们将介绍如何使用Pandas库过滤DataFrame中的空值。

Pandas库是一个开源的Python数据分析库,具有强大的数据结构和数据分析工具。在数据处理过程中,常常需要对缺失数据进行处理。Pandas库提供了丰富的方法和功能来帮助我们处理缺失数据。

阅读更多:Pandas 教程

什么是空值

空值是指数据表中缺失的数据或者数据表中的空值。在Pandas中,空值表示为NaN(Not a Number)或None(空值)。

以下是一个包含空值的DataFrame:

import pandas as pd

data = {'name': ['Tom', 'Sarah', 'Jessie', 'Nancy', 'Sandy', 'Sam'],
       'age': [32, None, 25, 29, 33, None],
       'gender': ['M', 'F', 'F', None, 'F', 'M'],
       'salary': [50000, 60000, 55000, None, None, 45000]}
df = pd.DataFrame(data)
print(df)
Python

输出结果:

     name   age gender   salary
0     Tom  32.0      M  50000.0
1   Sarah   NaN      F  60000.0
2  Jessie  25.0      F  55000.0
3   Nancy  29.0   None      NaN
4   Sandy  33.0      F      NaN
5     Sam   NaN      M  45000.0
Python

判断空值

我们可以使用isnull()方法来判断DataFrame中是否存在空值。isnull()方法返回一个布尔类型的DataFrame,其中值为True的表示空值,值为False的表示非空值。

以下是一个判断空值的示例:

print(df.isnull())
Python

输出结果:

    name    age  gender  salary
0  False  False   False   False
1  False   True   False   False
2  False  False   False   False
3  False  False    True    True
4  False  False   False    True
5  False   True   False   False
Python

过滤空值

Pandas库提供了许多方法来过滤空值。我们可以使用dropna()方法来删除包含空值的行或列。该方法有两个常用的参数:axis和how。

axis参数用于指定要操作的轴。axis = 0表示按行操作,axis = 1表示按列操作,默认为0。

how参数用于指定删除的方式。how = ‘any’表示只要存在空值就删除,how = ‘all’表示只有当整行或整列都是空值时才删除,默认为’any’。

以下是一个使用dropna()方法删除包含空值的行的示例:

df_without_na = df.dropna(axis=0, how='any')
print(df_without_na)
Python

输出结果:

     name   age gender   salary
0     Tom  32.0      M  50000.0
2  Jessie  25.0      F  55000.0
Python

填充空值

除了删除包含空值的行或列外,我们还可以使用fillna()方法来填充空值。

fillna()方法有一个常用的参数:value。该参数用于指定填充的值,默认为None。我们也可以使用fillna()方法的其他参数来指定填充的方式。

以下是一个使用fillna()方法填充空值的示例:

df_fill_na = df.fillna(value={'age': 30, 'gender': 'U', 'salary': 50000})
print(df_fill_na)
Python

输出结果:

     name   age gender   salary
0     Tom  32.0      M  50000.0
1   Sarah  30.0      F  60000.0
2  Jessie  25.0      F  55000.0
3   Nancy  29.0      U  50000.0
4   Sandy  33.0      F  50000.0
5     Sam  30.0      M  45000.0
Python

在上面的示例中,我们使用value参数指定填充的值,其中age、gender、salary列的空值分别使用30、’U’、50000进行填充。

替换空值

我们还可以使用replace()方法来将空值替换为其他的值。该方法有两个常用的参数:to_replace和value。

to_replace参数用于指定要替换的值,可以是单个值、多个值或者字典。value参数用于指定替换后的值,可以是单个值或者字典。

以下是一个使用replace()方法将空值替换为其他值的示例:

df_replace_na = df.replace(to_replace={'age': None, 'salary': None}, value={'age': 30, 'salary': 50000})
print(df_replace_na)
Python

输出结果:

     name   age gender   salary
0     Tom  32.0      M  50000.0
1   Sarah  30.0      F  60000.0
2  Jessie  25.0      F  55000.0
3   Nancy  29.0   None  50000.0
4   Sandy  33.0      F  50000.0
5     Sam  30.0      M  45000.0
Python

在上面的示例中,我们使用to_replace参数指定要替换的空值,使用value参数指定替换后的值。

总结

本文介绍了如何使用Pandas库过滤DataFrame中的空值。我们可以使用isnull()方法判断DataFrame中是否存在空值,使用dropna()方法删除包含空值的行或列,使用fillna()方法填充空值,使用replace()方法将空值替换为其他的值。掌握这些方法可以帮助我们在数据处理过程中更加灵活自如地处理缺失数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册