📜  删除 na python (1)

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

删除 NA Python

在数据分析、机器学习、深度学习过程中,数据质量一直是非常关键的因素之一。其中,缺失数据(Nan、NA、null等)的处理一直是非常重要的一环,本篇文章将介绍如何在Python中删除NA数据。

1. 准备工作

在使用Python进行数据处理时,我们通常需要使用一些第三方库,如pandas、numpy、matplotlib等。

在本文中,我们将主要使用pandas库来删除NA数据。请先使用如下命令安装pandas库:

pip install pandas
2. 如何删除NA数据

在pandas中,可以使用dropna函数来删除数据集中包含NA值的行或列。dropna函数的用法如下:

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

其中,各参数的意义如下:

  • axis:表示需要删除的维度。axis=0表示删除包含NA值的行,axis=1表示删除包含NA值的列,默认为0。

  • how:表示删除NA值的方式。'any'表示只要存在NA值就删除整行或整列,'all'表示当整行或整列中的所有值都为NA时才删除,默认为'any'。

  • thresh:表示需要保留的非NA值的数量。当一个行或列中非NA值的数量小于thresh时,就将该行或列删除。

  • subset:表示只在指定的列中删除NA值。例如subset=['col1', 'col2']表示只在col1和col2列中删除NA值。

  • inplace:表示是否直接在原数据集上进行修改。如果不加该参数或者该参数为False,则不会修改原数据集,而是返回一个新数据集。

接下来,我们通过一个简单的示例来演示如何使用dropna函数删除NA数据。

import pandas as pd
import numpy as np

# 创建包含NA值的数据集
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Cathy', 'David', 'Eva'], 
                   'age': [25, np.nan, 18, 42, np.nan], 
                   'gender': ['F', 'M', np.nan, 'M', 'F'], 
                   'region': [np.nan, np.nan, 'Beijing', 'Shanghai', 'Guangzhou']})

# 删除包含NA值的行
df1 = df.dropna()
print(df1)

# 删除包含NA值的列
df2 = df.dropna(axis=1)
print(df2)

# thresh参数示例
df3 = df.dropna(thresh=3)
print(df3)

# subset参数示例
df4 = df.dropna(subset=['age', 'region'])
print(df4)

# inplace参数示例
df.dropna(inplace=True)
print(df)

以上代码中,我们首先创建了一个包含NA值的数据集df。接着,依次使用dropna函数删除包含NA值的行、列、thresh、subset和inplace。在结果中,我们可以看到所有的NA值都被成功删除。

3. 总结

本文介绍了如何使用pandas库删除NA数据。在实际操作过程中,根据具体情况选择不同的参数,可以轻松地处理包含NA值的数据集。