如何在Pandas hist中按固定步长设置bins(薪资场景示例)
解决方案
直接利用数值序列生成工具自动创建bins列表,无需手动逐个输入区间值,以下是两种简洁实现方式:
方式一:使用NumPy的arange(推荐)
NumPy的arange可以快速生成指定起始、步长和终止值的均匀间隔序列,完美适配直方图的bins需求:
import numpy as np import pandas as pd # 定义薪资区间参数 salary_max = 2000000 # 薪资上限 bin_interval = 50000 # 每个区间的跨度 # 自动生成bins序列,+bin_interval是为了包含上限值 bins = np.arange(0, salary_max + bin_interval, bin_interval) # 绘制直方图 df['salary'].hist(bins=bins)
方式二:使用Python内置range
如果不想依赖NumPy,用内置的range结合列表转换也能实现:
import pandas as pd salary_max = 2000000 bin_interval = 50000 # 生成区间序列并转为列表 bins = list(range(0, salary_max + bin_interval, bin_interval)) df['salary'].hist(bins=bins)
补充说明
- 序列起始值设为0是基于薪资非负的常规场景,如果你的数据中存在更低的薪资值,可以将起始值调整为
df['salary'].min() - bin_interval,确保所有数据都能被包含在区间内。 - 终止值加上
bin_interval是为了让最后一个区间能覆盖到salary_max这个上限值,避免最大薪资被排除在最后一个区间外。
内容的提问来源于stack exchange,提问作者TiimeIrre
相关产品推荐
相关产品推荐

