📜  drop na pandas - Python (1)

📅  最后修改于: 2023-12-03 15:14:47.927000             🧑  作者: Mango

处理缺失值的利器 - Pandas的dropna()

在数据分析中,我们经常需要清洗数据并处理缺失值。Pandas是Python中一种常用的数据分析工具,其中的dropna()函数就是处理缺失值的利器。

什么是缺失值?

在数据分析中,缺失值指的是数据中出现了空缺或无效的数据。通常情况下,缺失值由于各种原因引起,比如数据采集的错误、数据清洗的不完备等。需要对缺失值进行处理,以便更好地进行数据分析和建模。

Pandas中dropna()的用法

在Pandas中,dropna()函数用于删除缺失值所在的行或列。

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

其中各参数的含义如下:

  • axis:指定删除哪个维度的缺失值,默认为0,即删除行。当axis=1时,表示删除列。
  • how:指定删除的方式,可选项有'any'和'all','any'表示只要出现缺失值就删除整行或整列,'all'表示所有值都为缺失值才删除整行或整列。默认为'any'。
  • thresh:指定保留的非缺失值的数量,即只有非缺失值的数量大于或等于thresh时,才保留该行或该列。默认为None,表示忽略此限制。
  • subset:指定删除时只针对哪些列或哪些行进行操作,即只对subset参数指定的列或行中的缺失值进行删除。默认为None,表示对所有列或行都进行操作。
  • inplace:指定是否原地修改DataFrame,即是否删除数据后直接替换原来的DataFrame对象。默认为False,表示返回一个新的DataFrame对象。
一个示例

我们来看一个使用dropna()函数来处理缺失值的例子。假设我们有以下的一份数据:

import pandas as pd

data = pd.DataFrame({'name':['Tim', 'Alice', 'Tom', 'Jack', 'Jerry'], 
                     'age':[30, 25, None, 40, None], 
                     'gender':['M', 'F', 'M', None, 'M']})
print(data)

输出结果为:

    name   age gender
0    Tim  30.0      M
1  Alice  25.0      F
2    Tom   NaN      M
3   Jack  40.0   None
4  Jerry   NaN      M

可以看到,我们的数据中存在缺失值,比如第3行的age值和第4、5行的gender值。

我们使用dropna()函数来删除这些缺失值。首先,我们以行为单位删除所有存在缺失值的行:

clean_data = data.dropna()
print(clean_data)

输出结果为:

    name   age gender
0    Tim  30.0      M
1  Alice  25.0      F

可以看到,第2行、第4行、第5行因为存在缺失值而被删除了。接下来,我们尝试以列为单位删除存在缺失值的列:

clean_data = data.dropna(axis=1)
print(clean_data)

输出结果为:

    name
0    Tim
1  Alice
2    Tom
3   Jack
4  Jerry

可以看到,存在缺失值的列age和gender被删除了。

总结

Pandas中的dropna()函数是一个非常便利的工具,它可以快速地帮助我们清洗数据,处理缺失值,为数据分析和建模提供基础支持。在使用时,我们可以根据实际需求来灵活配置其参数,以达到最佳效果。