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

是否有类似于R中complete.cases的等效Python函数,python,pandas,Python,Pandas,我正在删除pandas数据框中的一些记录,该数据框在4列框架中包含不同的NaN组合。我创建了一个名为complete_cases的函数来提供满足以下条件的行的索引:行中的所有列都是NaN 我在下面尝试了此功能: def complete_案例(数据帧): indx=[] indx=[x代表列表中的x(dataframe.index)\ 如果dataframe.loc[x,:].isna().sum()= len(dataframe.columns)] 返回indx 我想知道这是否足够理想,或者

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

我在下面尝试了此功能:

def complete_案例(数据帧):
indx=[]
indx=[x代表列表中的x(dataframe.index)\
如果dataframe.loc[x,:].isna().sum()=
len(dataframe.columns)]
返回indx
我想知道这是否足够理想,或者是否有更好的方法来做到这一点。

一个可能的解决方案:

使用“NA”计数列数,创建一列以保存该列

基于此新列,根据需要筛选数据框的行

删除(现在)不必要的列

可以使用lambda函数来执行此操作。例如,如果要删除具有10个“NA”值的行:


当然。你需要做的就是

df.dropna(axis = 0, how = 'any', inplace = True)

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

括号内不需要反斜杠。只需使用
dropna
。如果您想让它像上面那样更明确,在这种情况下any比sum好
dataframe[~dataframe.isna().any(axis=1)]
@maow谢谢,但我只想删除具有完整NaN值的记录,而不是部分NaN值的记录。在@maow之后,您可以使用
.all()
然后谢谢@mayelsgc
df.dropna(axis = 0, how = 'any', inplace = True)