You need to enable JavaScript to run this app. pandas中按数值范围分组及筛选Gt3.0-5.0区间高频flt的方法
优惠活动
大模型
产品
解决方案
定价
更多

pandas中按数值范围分组及筛选Gt3.0-5.0区间高频flt的方法

一、通用方法:按数值范围对pandas数据做分组

处理连续数值列的范围归组,无需手动逐行判断区间,直接使用pandas内置的pd.cut()分箱工具即可完成:

  • 通过bins参数传入自定义的区间端点,支持用-inf/inf表示无边界的上下限区间
  • 通过inclusive参数控制区间边界的包含规则,避免边界值漏匹配
  • 生成的分组标签列可直接配合groupby()完成跨组聚合统计

注意:分箱时如果遇到区间边界值(比如刚好等于3.0、5.0的Gt值),提前设置好边界包含规则可以避免漏匹配问题。

通用分箱示例代码:

# 给Gt列按自定义区间生成分组标签
df['Gt_range_group'] = pd.cut(
    df['Gt'],
    bins=[-float('inf'), 1.0, 3.0, 5.0, float('inf')],
    labels=['Gt≤1.0', '1.0<Gt≤3.0', '3.0<Gt≤5.0', 'Gt>5.0'],
    include_lowest=True
)
二、航班数据集的Top5高频条目实现

需求逻辑拆解:筛选Gt在3.0-5.0区间的行 → 统计区间内各flt的出现频次并降序排列 → 取前5个条目
分步可运行代码:

import pandas as pd

# 加载你的航班数据集(实际使用时替换为文件读取逻辑,比如pd.read_csv("flights.csv"))
df = pd.DataFrame({
    'flt': ['CX 261', 'CX 383', 'CX 880', 'CX 105', 'CX 237'],
    'OrgiDest': ['CDG', 'ZRH', 'LAX', 'MEL', 'LHR'],
    'Gt': [1.0, 2.0, 3.0, 5.0, 5.0]
})

# 1. 筛选Gt处于3.0-5.0闭区间的行
filtered_subset = df[df['Gt'].between(3.0, 5.0, inclusive='both')]

# 2. 统计flt频次、自动按频次降序排列,取前5个结果
top5_flt_list = filtered_subset['flt'].value_counts().head(5)

针对你提供的样例数据集,上述代码的运行结果为:

CX 880    1
CX 105    1
CX 237    1
Name: flt, dtype: int64

补充说明:

  • 你之前按Gt值从小到大排序的操作不属于本需求的必需步骤,除非需要在同频次下按Gt值调整展示顺序,否则无需提前执行——value_counts()方法自带按频次降序的排序逻辑,可直接满足排序要求
  • 如果需要保留每个flt对应的原表字段(比如OrgiDest、Gt值),而不是仅输出频次统计结果,可以使用如下代码关联原始表信息:
# 生成带频次标记的原始明细Top5结果
freq_stats = filtered_subset['flt'].value_counts().rename('appear_freq').reset_index()
top5_with_detail = filtered_subset.merge(
    freq_stats,
    left_on='flt',
    right_on='index'
).drop(columns='index').sort_values(by='appear_freq', ascending=False).head(5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 06:45:09