需要给定一个数值范围,然后按照下面的规则自动分箱:

  • 等频分箱:每个区间内包括的值一样多
  • 等距分箱:每两区间之间的距离是一样的

等频分箱使用:pd.qcut,更多可以参考文档:https://pandas.pydata.org/docs/reference/api/pandas.qcut.html
等距分箱使用:pd.cut,更多可以参考文档:https://pandas.pydata.org/docs/reference/api/pandas.cut.html

示例代码

import pandas as pd

value_list = [0, 10, 20, 30.4, 59, 61, 79, 80, 90, 99, 100]

# 等频分箱
value_freq_bins = pd.qcut(value_list, q=5)
print("等频分箱:", value_freq_bins.codes)

# 等距分箱
value_dis_bins = pd.cut(value_list, bins=5)
print("等距分箱:", value_dis_bins.codes)

得到结果:

等频分箱: [0 0 0 1 1 2 2 3 3 4 4]
等距分箱: [0 0 0 1 2 3 3 3 4 4 4]
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐