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

Pandas遍历行判断Status列是否为NULL时出现AttributeError问题求助

解决Pandas遍历行检查Status列空值时的AttributeError问题

问题原因

用iterrows()遍历DataFrame时,row['Status']返回的是单个元素而非Series对象:

  • 当元素是字符串(如'Success')时,调用isnull()会触发AttributeError,因为字符串类型没有这个方法;
  • 用is None判断不生效,是因为Pandas中的空值是NaN(numpy.float64类型),并非Python原生的None。

解决方案

方案1:使用Pandas矢量化操作(推荐,效率更高)

无需逐行遍历,直接筛选空值行:

import pandas as pd
data = pd.read_excel('ExcelFile.xlsx')
# 筛选Status列为空的行
null_status_rows = data[data['Status'].isnull()]
# 打印空值行信息
for idx, row in null_status_rows.iterrows():
    print(f"行{idx}的Status为空")

方案2:保留遍历,用pd.isna()函数判断

如果必须逐行处理,调用Pandas顶层的pd.isna()函数来判断空值:

import pandas as pd
data = pd.read_excel('ExcelFile.xlsx')
results = {}
for index, row in data.iterrows():
    if pd.isna(row['Status']):
        print('NULL')

pd.isna()可以兼容所有类型的空值(包括NaN、None),不管元素是字符串还是数值类型都能正确识别。

方案3:用apply()逐行处理

若需要对每行做复杂逻辑,推荐用apply()替代iterrows():

import pandas as pd
data = pd.read_excel('ExcelFile.xlsx')
# 逐行检查并打印空值提示
data.apply(lambda row: print('NULL') if pd.isna(row['Status']) else None, axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:40:38