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

如何在Sheet_Name为Gdg时删除Course列NaN行?代码报错求解

删除DataFrame中特定条件的行

需求

删除DataFrame里满足以下条件的行:当Sheet_Name列的值为Gdg时,Course列存在空值(NaN)。

示例数据

Course    Sheet_Name
NaN       Gdg
course 1  Gdg
course 2  ret
NaN       ret

期望结果

Course   Sheet_Name
course 1  Gdg
course 2  ret
NaN       ret

当前代码及报错

运行的代码

USS_2023 = USS_2023.drop(USS_2023[(USS_2023['Courses'] == np.nan) & [USS_2023['Sheet_Name']=='Gdg']].index)

报错信息

ValueError: setting an array element with a sequence.

问题原因及修复方案

错误点解析

  1. NaN判断错误:用== np.nan无法正确识别空值,因为NaN和任何值比较结果都是False,必须用.isna()方法。
  2. 条件格式错误:[USS_2023['Sheet_Name']=='Gdg']多了一层方括号,把布尔序列变成了列表,导致逻辑运算出错。
  3. 列名不一致:需求里的列名是Course,代码里写成了Courses,会导致列不存在或者筛选逻辑失效。

修正后的代码

# 方法一:使用drop删除目标行
USS_2023 = USS_2023.drop(USS_2023[(USS_2023['Course'].isna()) & (USS_2023['Sheet_Name'] == 'Gdg')].index)

更简洁的写法

直接保留不符合删除条件的行,逻辑更直观:

USS_2023 = USS_2023[~((USS_2023['Course'].isna()) & (USS_2023['Sheet_Name'] == 'Gdg'))]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:25:10