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

标签 python python-3.x pandas nan data-cleaning

我有一个尺寸为 89 行 x 13 列的 Pandas 数据框。如果 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 ...
在上面的示例中,我想删除 Springhurst 观察,因为它在前五列中包含 NaN。我如何才能在 Python 中做到这一点?

最佳答案

如果要对前 5 列的所有行中的 Nan 进行严格检查:

df.iloc[:, :5].dropna(how='all')
解释:df.iloc[:, :5] : 选择所有行和前 5 列.dropna(how='all') : 检查一行中的所有值是否都是 NaN 如果你想在 5 列中的任何一列中检查 Nan:
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

关于python - 如果前五列中为 NaN,则删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64528034/

相关文章:

python - 续行中的注释

python - 在 python 3 中,如何将 bytes 对象中的单个字节放入列表而不将它们转换为整数?

python - 如何使用 XlsxWriter 将多种格式应用于一列

python - 按另一列提取行最大值组

python - 在 Python 中取消定时器

python - 多输出分类器/学习 5 个目标变量

python - 如何在继承 wx.Frame 的类之外的类中创建 staticBitmap

python - 两个形状相同的数据帧 : How to get a dataframe with the minimun for each cell

python - 寻找一种同时循环遍历两个不同长度列表的优雅方法

python - 在 DataFrame 中为每天创建一个运行最大列