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

如何按自定义非连续区间统计DataFrame列值 而非使用分箱

实现代码

首先导入所需依赖:

import pandas as pd
import numpy as np

假设你已加载原始数据到变量df中,按如下步骤操作即可:

步骤1:生成带Range标签的DataFrame

使用np.select实现自定义区间匹配,逻辑更直观,后续修改规则也更灵活:

# 定义区间判断规则和对应标签
conditions = [
    df['Value1'].between(1, 4, inclusive='both'),
    df['Value1'].between(7, 10, inclusive='both'),
    df['Value1'].between(13, 20, inclusive='both')
]
range_labels = ['Range 1', 'Range 2', 'Range 3']

# 生成Range列,不满足所有区间条件的默认填充No_range
df['Range'] = np.select(conditions, range_labels, default='No_range')

如果你更习惯分箱写法,也可以用如下等效实现:

bins = [0, 4, 6, 10, 12, 20]
bin_labels = ['Range 1', pd.NA, 'Range 2', pd.NA, 'Range 3']
df['Range'] = pd.cut(df['Value1'], bins=bins, labels=bin_labels, include_lowest=True).fillna('No_range')

步骤2:生成汇总统计结果

# 过滤掉不属于自定义区间的行,统计各区间频次
stats_df = df[df['Range'] != 'No_range']['Range'].value_counts()\
            .reset_index(name='Frequency')\
            .sort_values('Range') # 按区间定义顺序排序,保证输出顺序符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:45:02