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

Pandas DataFrame值不存在时如何返回0计数避免AttributeError?

解决方法

问题出在当_merge列里没有Missing_in_NSL这个值时,value_counts()返回的Series不存在这个索引,直接用属性访问会触发AttributeError。可以用以下几种方式安全获取计数,不存在时返回0:

  • 方法1:用Series的get()方法(推荐)
    直接调用get()并指定默认值0,这是最简洁的方式:

    missing_nsl = missing_records._merge.value_counts().get('Missing_in_NSL', 0)
    

    同样,missing_gmt也可以改成这种写法,保持代码风格一致:

    missing_gmt = missing_records._merge.value_counts().get('Missing_in_GMTLib', 0)
    
  • 方法2:转成字典后取值
    把计数结果转成字典,再用字典的get()方法:

    count_dict = missing_records._merge.value_counts().to_dict()
    missing_nsl = count_dict.get('Missing_in_NSL', 0)
    
  • 方法3:预先指定所有可能的类别(适合多类别场景)
    如果需要同时处理多个_merge类型的计数,可以先定义所有可能的类别,用reindex()补全缺失值为0:

    # 定义_merge列所有可能的取值
    merge_types = ['Missing_in_GMTLib', 'Missing_in_NSL', 'both']
    # 重新索引,缺失的类别填充0
    count_series = missing_records._merge.value_counts().reindex(merge_types, fill_value=0)
    # 直接通过索引取值
    missing_gmt = count_series['Missing_in_GMTLib']
    missing_nsl = count_series['Missing_in_NSL']
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:35:32