我有一个 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(使用前将#替换为@)