R 中是否有类似于complete.cases 的等效Python 函数

use*_*hrn 9 python pandas

我正在删除 pandas 数据框中的许多记录,该数据框中包含 4 列框中 NaN 的不同组合。我创建了一个名为complete_cases 的函数来提供满足以下条件的行索引:行中的所有列均为 NaN。

我在下面尝试过这个功能:

def complete_cases(dataframe):
    indx = []
    indx = [x for x in list(dataframe.index) \
            if dataframe.loc[x, :].isna().sum() == 
            len(dataframe.columns)]
    return indx
Run Code Online (Sandbox Code Playgroud)

我想知道这是否足够最佳或者有更好的方法来做到这一点。

小智 14

绝对地。您需要做的就是

df.dropna(axis = 0, how = 'any', inplace = True)
Run Code Online (Sandbox Code Playgroud)

这将删除至少有一个缺失值的所有行,并“就地”更新数据框。


小智 1

我建议将loc, notna, 和all'columns'axis 一起使用,如下所示:

df.loc[df.notna().all(axis='columns')]
Run Code Online (Sandbox Code Playgroud)

这样你就可以像complete.casesR 中那样只过滤结果。