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

Pandas统计列中属于指定数值列表的行数实现咨询

统计符合指定数值范围的DataFrame行数方案

你之前的写法报错的核心原因是:value_counts() 方法的入参不支持直接传入匹配目标列表,该方法第一个参数为normalize,用来控制是否返回占比而非计数,语法不匹配自然运行失败。

核心实现逻辑

构造布尔判断序列,判断列中每一行取值是否属于目标范围,对布尔序列求和即可得到符合条件的总行数(布尔值True对应数值1,False对应数值0)。

适配你场景的两种解决方法

  • 方法1:转换列数据为数值类型后匹配
    因为列中存在字符串类型的异常值,转换时设置errors='coerce'把无法转为数值的内容转成空值,避免报错:
    import pandas as pd
    num_range = list(range(200,281, 5))
    # 转换列类型,非数值内容转为NaN
    col_numeric = pd.to_numeric(df['COL_1'], errors='coerce')
    # 统计符合条件的行数
    count = col_numeric.isin(num_range).sum()
    
  • 方法2:将目标数值范围转为字符串格式匹配
    不需要修改原列数据,直接把目标列表转成字符串后匹配即可,适配你排查到的兼容方案:
    # Python2.7中map直接返回列表
    target_range = map(str, range(200, 281, 5))
    count = df['COL_1'].isin(target_range).sum()
    

注意事项

以上两种方法都会自动跳过空值、UNREADABLE/NOT_PASSIVE这类非目标字符串,最终返回的就是符合要求的总行数。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:09:01