我正在删除熊猫数据框中的许多记录,该数据框中包含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
我想知道这是否足够理想,或者有更好的方法来做到这一点。
答案 0 :(得分:1)
绝对。您需要做的就是
df.dropna(axis = 0, how = 'any', inplace = True)
这将删除所有缺少至少一个值的行,并更新数据框“ inplace”。
答案 1 :(得分:0)
可能的解决方案:
使用“ NA”计算列数以创建要保存的列
基于此新列,根据需要过滤数据框的行
删除(现在)不必要的列
可以使用lambda函数来实现。例如,如果要删除具有10个“ NA”值的行:
df['count'] = df.apply(lambda x: 0 if x.isna().sum() == 10 else 1, axis=1)
df = df[df.count != 0]
del df['count']