如果前五列中为 NaN,则删除行

2024-01-01

我有一个 pandas 数据框,尺寸为 89 行 x 13 列。我想删除一个entire row if NaN出现在前五列中。这是一个例子。

LotName     C15   C16  C17  C18  C19 Spots15 Spots16 ...
Cherry St   439   464  555  239  420     101     101 ...
Springhurst NaN   NaN  NaN  NaN  NaN      12      12
Barton Lot   34    24   43   45   39      10       9 ...

在上面的例子中,我想删除斯普林赫斯特观察,因为它包含NaN在前五列内。我怎样才能在Python中做到这一点?


如果你想严格检查Nan在前 5 列的所有行中:

df.iloc[:, :5].dropna(how='all')

解释:

df.iloc[:, :5]:选择所有行和前 5 列

.dropna(how='all'):检查一行中的所有值是否都是NaN

如果您想检查Nan在 5 列中的任意一列中:

df.iloc[:, :5].dropna(how='any')

要将其分配回原始 df,您可以执行以下操作:

In [2107]: ix = df.iloc[:, :5].dropna(how='all').index.tolist()

In [2110]: df = df.loc[ix]

In [2111]: df
Out[2111]: 
       LotName    C15    C16    C17    C18  C19  Spots15  Spots16
Cherry      St  439.0  464.0  555.0  239.0  420      101    101.0
Barton     Lot   34.0   24.0   43.0   45.0   39       10      9.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果前五列中为 NaN,则删除行 的相关文章

随机推荐