📜  drop na (1)

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

介绍dropna()函数

一、函数作用

dropna()函数是Pandas库中的一个非常实用的函数,它的作用是用于删除缺失值所在的行或列。

二、函数语法

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

参数解释:

  • axis:默认为0,表示删除缺失值所在的行;如果为1,则表示删除缺失值所在的列。

  • how:删除缺失值的方式,可以选择以下两种选项之一:

    • 'any':只要有一个缺失值,就删除该行或列。
    • 'all':所有的值都缺失,才删除该行或列。
  • thresh:int类型或None,表示每行或列最少含有的非缺失值;默认为None,即不设置阈值。

  • subset:list类型或None,表示需要考虑的列,如果为None,则删除所有缺失值所在的行或列。

  • inplace:默认为False,表示不改变原数据,而是返回一个新的数据;如果为True,则在原数据上进行操作。

三、使用示例

下面通过一个简单的示例来演示如何使用dropna()函数。

首先,我们生成一个示例数据集:

import pandas as pd

data = {'name': ['Mike', 'Jim', 'Tom', 'Mary', 'Emily'],
        'age': [20, None, 22, 25, None],
        'gender': ['M', 'M', None, 'F', 'F']}

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

输出结果:

     name   age gender
0    Mike  20.0      M
1     Jim   NaN      M
2     Tom  22.0   None
3    Mary  25.0      F
4   Emily   NaN      F

然后,我们使用dropna()函数来删除缺失值所在的行:

new_df = df.dropna()
print(new_df)

输出结果:

   name   age gender
0  Mike  20.0      M
3  Mary  25.0      F

我们可以看到,缺失值所在的行已经被删除了。

如果我们将axis参数设置为1,则会删除缺失值所在的列:

new_df = df.dropna(axis=1)
print(new_df)

输出结果:

    name
0   Mike
1    Jim
2    Tom
3   Mary
4  Emily

我们可以看到,缺失值所在的列已经被删除了。

如果我们将thresh参数设置为2,则只删除缺失值数量超过2个的行:

new_df = df.dropna(thresh=2)
print(new_df)

输出结果:

   name   age gender
0  Mike  20.0      M
2   Tom  22.0   None
3  Mary  25.0      F

我们可以看到,因为第二行缺失值数量为2,所以被删除了。

如果我们将subset参数设置为['age'],则只考虑'age'列中的缺失值:

new_df = df.dropna(subset=['age'])
print(new_df)

输出结果:

   name   age gender
0  Mike  20.0      M
2   Tom  22.0   None
3  Mary  25.0      F

我们可以看到,只有'age'列中的缺失值所在的行被删除了,'gender'列中的缺失值所在的行未被删除。

四、总结

dropna()函数是Pandas库中非常实用的一个函数,它能够帮助我们删除缺失值所在的行或列,具有方便、快捷的特点,可以使数据处理更加简便高效。使用本函数需要注意参数的含义和设置,才能达到我们预期的效果。