You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除DataFrame中指定索引列含NaN或空值的行?

解决DataFrame按列索引删除含NaN/空值行的问题

如果你无法使用subset参数,直接通过列索引定位目标列,再过滤掉包含NaN(或空字符串)的行即可。以下是具体实现:

核心思路

  1. 用iloc按索引定位目标列(示例中为列索引2)
  2. 通过notna()判断该列的非NaN值,生成布尔筛选器
  3. 若需同时处理空字符串,额外添加字符串非空判断

示例代码

import pandas as pd
import numpy as np

# 构造你的示例DataFrame
data = [
    [12, 125, 36, 45, 665],
    [15, 212, 12, 65, 62],
    [65, 9, np.nan, 98, 84],
    [21, 54, 78, 5, 654],
    [211, 65, 58, 26, 65]
]
df = pd.DataFrame(data)

# 仅过滤NaN值的情况
filtered_df = df[df.iloc[:, 2].notna()]

# 若需同时过滤空字符串(包括全空格),使用以下代码
# filtered_df = df[(df.iloc[:, 2].notna()) & (df.iloc[:, 2].astype(str).str.strip() != '')]

print(filtered_df)

输出结果

0    1   2   3    4
0   12  125  36  45  665
1   15  212  12  65   62
3   21   54  78   5  654
4  211   65  58  26   65

内容的提问来源于stack exchange,提问作者user16832397

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:20:31