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

基于Pandas、Seaborn绘制多站点PT列结果计数条形图的指导求助

实现思路指导

1. 前置准备:定义全量有效结果集合

先把要求的12类有效结果整理成固定列表,方便后续匹配和补全0值:

  • 固定字符串类:['NOT_FINISHED', 'NOT_TESTED', 'TOO_LOW']
  • 数值类:150~190之间步长为5的数值,共9个,统一转成字符串格式(避免和数据里的字符串/浮点型数值匹配失败)
  • 最终合并成12个元素的valid_list,后续统计、绘图都按这个列表的顺序处理

2. 数据预处理:统一空值格式

把数据里PT1~PT4列的空字符串、NaN统一替换成标准空值,方便后续判断。

3. 逐行提取最右侧有效值

自定义行处理函数,用pandas的apply方法对每行数据处理:

  • 按PT4→PT3→PT2→PT1的顺序依次检查该列的值是否在valid_list中
  • 找到第一个符合要求的值就返回,作为该行的有效结果
  • 四列都没有有效值的行返回空,后续直接过滤掉这些行
    处理完给数据集新增一列res存储提取到的有效结果,过滤掉res为空的行。

4. 按站点分组统计计数

  • 按Sites字段分组,每组统计res列各值的出现次数
  • 统计完成后对每个站点的统计结果用valid_list重设索引,缺失值补0,保证每个站点的统计结果都包含全部12类有效结果,就算计数为0也保留

5. 分站点绘制条形图

遍历A1、A2、A3三个站点:

  • 取出对应站点的12类结果的计数数据
  • 用seaborn的barplot或者matplotlib的bar接口绘图,x轴为有效结果名称,y轴为计数
  • 可按需设置x轴标签旋转、图表标题、y轴范围等,避免文字重叠,优化显示效果

小提示

处理PT列的时候统一把所有值转成字符串再匹配,避免出现数值型165.0和字符串型'165'判定为不匹配的问题;Python2.7适配的pandas版本对apply的兼容性很好,不需要写复杂的循环逻辑即可完成行处理。

内容的提问来源于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.06 01:09:03