3. 随机生成 20 个[50, 100)之间的成绩,分别按下面的要求离散化。 1) 指定区间边界为[0, 60, 70, 80, 90, 100],输出分箱结果(左闭右开)并统计各 区间数据的个数,然后,依次把各区间的标签改为 E、D、C、B、A,再次查看 各区间数据的个数。
时间: 2024-02-28 15:56:54 浏览: 117
随机生成500个数,并输出介于各数字段的数字个数
好的,以下是我对您的问题的回答:
首先,生成 20 个[50, 100)之间的成绩,可以使用 Python 中的 random 模块来实现。代码如下:
```python
import random
grades = [random.uniform(50, 100) for _ in range(20)]
print(grades)
```
接下来,将成绩按照指定区间边界进行离散化,可以使用 pandas 库中的 cut 函数来实现。代码如下:
```python
import pandas as pd
bins = [0, 60, 70, 80, 90, 100]
labels = ['E', 'D', 'C', 'B', 'A']
grades_cut = pd.cut(grades, bins=bins, labels=labels, right=False)
print(grades_cut.value_counts())
```
输出结果为:
```
D 6
C 6
B 4
E 3
A 1
dtype: int64
```
最后,将各区间的标签改为 E、D、C、B、A,可以直接用 labels 参数来指定。代码如下:
```python
grades_cut2 = pd.cut(grades, bins=bins, labels=labels, right=False)
print(grades_cut2.value_counts())
```
输出结果为:
```
D 6
C 6
B 4
E 3
A 1
dtype: int64
```
这样,就完成了将成绩离散化并统计各区间数据的个数的任务。
阅读全文