我正在删除 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 中那样只过滤结果。
| 归档时间: |
|
| 查看次数: |
6926 次 |
| 最近记录: |