pandas删除na的行

pandas删除na的行

pandas删除na的行

在数据分析和处理过程中,经常会遇到缺失值(NA)的情况。对于pandas来说,缺失值一般用np.nan来表示。在实际操作中,我们经常需要对包含缺失值的数据集进行清洗,其中一个常见的操作就是删除含有缺失值的行。

删除包含缺失值的行

在pandas中,可以使用dropna()方法删除包含缺失值的行。下面以一个示例数据集来演示如何删除含有缺失值的行:

import pandas as pd
import numpy as np

# 创建含有缺失值的示例数据集
data = {'A': [1, 2, np.nan, 4],
        'B': [5, np.nan, np.nan, 8],
        'C': [np.nan, 10, 11, 12]}
df = pd.DataFrame(data)

# 删除含有缺失值的行
cleaned_df = df.dropna()
print(cleaned_df)

运行结果如下:

     A    B     C
0  1.0  5.0   NaN
3  4.0  8.0  12.0

从上面的运行结果可以看出,原始数据集中含有缺失值的行已经被成功删除了。

指定删除条件

除了直接删除所有含有缺失值的行外,还可以根据自定义的删除条件进行删除。例如,可以指定只删除某一列中含有缺失值的行:

# 删除B列含有缺失值的行
cleaned_df = df.dropna(subset=['B'])
print(cleaned_df)

运行结果如下:

     A    B     C
0  1.0  5.0   NaN
3  4.0  8.0  12.0

在这个示例中,我们指定删除列B中含有缺失值的行。

设置阈值

在某些情况下,我们希望只删除超过一定缺失值数量阈值的行。可以使用thresh参数来设置阈值。

# 设置缺失值数量阈值为2
cleaned_df = df.dropna(thresh=2)
print(cleaned_df)

运行结果如下:

     A    B     C
0  1.0  5.0   NaN
1  2.0  NaN  10.0
3  4.0  8.0  12.0

在这个示例中,我们设置阈值为2,只有在一行中至少有2个非缺失值时,该行才不会被删除。

inplace参数

除了返回删除缺失值后的新数据集外,也可以使用inplace参数来直接在原数据集上进行修改。这样会节省内存空间。

# 直接在原数据集上删除含有缺失值的行
df.dropna(inplace=True)
print(df)

运行结果如下:

     A    B     C
0 1.0 5.0   NaN
3 4.0 8.0 12.0

在这个示例中,原数据集df中含有缺失值的行已经被成功删除了。

结语

以上就是关于pandas删除含有缺失值的行的介绍。通过dropna()方法,我们可以方便地删除数据集中含有缺失值的行,从而提高数据的质量和准确性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程