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

Python实现统计DataFrame中指定区间浮点数的数量

Python实现DataFrame区间数值统计(对应Excel FREQUENCY函数)

可以用Pandas轻松实现这个需求,下面给出两种常用方案,你可以根据自己的Excel输出结果调整区间边界:

方案一:用pd.cut快速划分区间并统计

这个方法和Excel的FREQUENCY逻辑最接近,适合快速生成区间统计结果:

import pandas as pd

# 读取你的源文件(Excel用read_excel,CSV用read_csv)
df = pd.read_excel('你的源文件路径.xlsx')

# 定义目标区间,可根据需求调整边界
bins = [0, 90, 180]
# include_lowest=True 确保第一个区间包含左端点0,sort_index()保证区间按顺序排列
counts = pd.cut(df['目标列名'], bins=bins, include_lowest=True).value_counts().sort_index()

# 转成和Excel类似的输出DataFrame
result_df = counts.reset_index(name='数量')
result_df.columns = ['区间', '数量']
print(result_df)

方案二:布尔索引手动统计

如果你需要更精准控制区间的开闭(比如明确90属于哪个区间),可以用布尔索引直接计算:

import pandas as pd

df = pd.read_excel('你的源文件路径.xlsx')
target_col = '目标列名'

# 统计0-90区间(包含两端)的数量
count_0_90 = len(df[(df[target_col] >= 0) & (df[target_col] <= 90)])
# 统计90-180区间(这里设置为包含90,可改成>90来排除)
count_90_180 = len(df[(df[target_col] >= 90) & (df[target_col] <= 180)])

# 构建结果DataFrame
result_df = pd.DataFrame({
    '区间': ['0-90', '90-180'],
    '数量': [count_0_90, count_90_180]
})
print(result_df)

多列数据统计

如果你的DataFrame有多列需要统计,用apply批量处理:

import pandas as pd

df = pd.read_excel('你的源文件路径.xlsx')

def calc_interval_counts(series):
    cnt_0_90 = len(series[(series >= 0) & (series <= 90)])
    cnt_90_180 = len(series[(series >= 90) & (series <= 180)])
    return pd.Series([cnt_0_90, cnt_90_180], index=['0-90数量', '90-180数量'])

# 对每一列应用统计函数,转置后得到清晰的结果
result_df = df.apply(calc_interval_counts).transpose()
print(result_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:30:53