python等频分箱代码
时间: 2023-10-14 09:29:22 浏览: 62
以下是Python的等频分箱代码示例:
```python
import pandas as pd
def equal_freq_bin(data, col, num_bins):
"""
等频分箱函数
:param data: 数据集
:param col: 需要分箱的列名
:param num_bins: 需要分的箱数
:return: 分箱结果
"""
# 按照需要分的箱数进行分箱
bins = pd.qcut(data[col], q=num_bins, duplicates='drop')
# 获取分箱结果
result = pd.DataFrame({'min_value': bins.apply(lambda x: x.left).tolist(),
'max_value': bins.apply(lambda x: x.right).tolist(),
'bin': pd.Series(range(1, len(bins.categories) + 1))})
return result
# 示例使用
data = pd.read_csv('data.csv')
result = equal_freq_bin(data, 'age', 5)
print(result)
```
在上面的示例中,`equal_freq_bin()` 函数接收一个数据集、需要进行分箱的列名和需要分的箱数作为参数。函数使用 `pd.qcut()` 函数进行等频分箱,返回一个 `bins` 对象。然后,函数构建一个包含每个箱的最小值、最大值和箱号的数据框并返回。您可以将 `data.csv` 替换为您的数据集,并根据需要更改列名和箱数。