11. 请对数据1 2 3 5 7 8 10 14 15 18 20进行分箱操作,要求如下: 1)分成3个箱子,2)每个箱子右边为闭区间,3)不需要包含最小值,4)保留2位有效数字,5)并对三个箱子进行大小排序。
时间: 2024-10-23 19:12:39 浏览: 48
纸箱子检测数据集VOC+YOLO格式8375张1类别.7z
5星 · 资源好评率100%
为了满足这些条件,我们可以使用`pd.cut`函数,结合指定的bins参数来完成分箱操作。首先,我们需要确定三个等宽的区间,由于不要求包含最小值,我们从第二个数据开始计算。然后,我们将结果转换为DataFrame并按照区间长度进行排序。这里是具体的Python代码示例:
```python
import pandas as pd
# 原始数据
data = [1, 2, 3, 5, 7, 8, 10, 14, 15, 18, 20]
# 设置分箱区间(不包括第一个数)
bins = [2, 7, float('inf')] # 分成三个箱子,边界分别为2, 7, 和无穷大
# 进行分箱操作,保留两位小数
p_bins = pd.cut(data, bins=bins, right=True, labels=False).round(2)
# 对区间长度排序
p_bins_sorted = p_bins.groupby(pd.cut(p_bins.index, bins=[0, len(p_bins)//2, len(p_bins)]))['right'].min().sort_values()
p_bins_sorted
```
运行这段代码后,你会得到按区间大小排序后的分箱结果。
阅读全文