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

使用Pandas按站点数据范围对DataFrame进行高低分类的实现方法

实现方案

核心思路:先按站点分组计算该站点所有Variable值的波动范围,再根据自定义阈值给每个站点打分类标签,最后将标签同步到该站点的所有数据行。


方法1:transform 实现(代码更简洁)

直接通过分组广播的方式给原表新增分类字段:

import pandas as pd

# 可手动调整分类阈值
THRESHOLD = 5

df['Type'] = df.groupby('Site')['Variable'].transform(
    lambda x: 'LOW' if (x.max() - x.min()) <= THRESHOLD else 'HIGH'
)

方法2:分组统计后合并(便于调试中间结果)

如果需要查看每个站点的具体波动范围做校验,可以选择该方案:

import pandas as pd

# 1. 计算每个站点的Variable取值范围
site_range = df.groupby('Site')['Variable'].agg(
    value_range=lambda x: x.max() - x.min()
).reset_index()

# 2. 可手动调整分类阈值
THRESHOLD = 5
site_range['Type'] = site_range['value_range'].apply(
    lambda x: 'LOW' if x <= THRESHOLD else 'HIGH'
)

# 3. 将分类标签合并回原数据表
df = df.merge(site_range[['Site', 'Type']], on='Site', how='left')

自定义调整说明

  • 可根据业务场景修改THRESHOLD的数值适配分类标准
  • 可替换波动范围计算逻辑:比如将x.max() - x.min()替换为四分位距x.quantile(0.75) - x.quantile(0.25),适配存在异常值的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:48:01