数值分箱
本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 54 课,共 64 课。
航空公司按行李的重量级别收费,而不是按克收费。分箱会把数字转换成范围,称为箱,当你只关心范围时就可以这样做:
pd.cut 接收数值、边界,以及每个区间对应的一个标签:
bags = pd.DataFrame({"kg": [5.5, 23.0, 18.2, 30.5, 7.0, 12.4]})
bags["class"] = pd.cut(bags["kg"], bins=[0, 7, 23, 32],
labels=["cabin", "standard", "heavy"])
print(bags["class"].value_counts().sort_index())这会打印:
class
cabin 2
standard 3
heavy 1
Name: count, dtype: int64每个区间都包含其右边界,因此 7.0 kg 仍属于客舱行李,超出边界的值会变成 NaN。
.sort_index() 会按顺序列出各个分箱,从最轻的开始。
挑战
中等动物园根据 age 将 members.csv 中的成员分组:child 表示最多 12 岁,teen 表示 13 到 17 岁,adult 表示 18 到 64 岁,senior 表示 65 到 100 岁。程序会读取一个 group。
- 添加一列
group,记录每位成员的年龄组。 - 打印每个组的成员人数,先打印
child。 - 打印读取到的组的
visits平均值,保留 2 位小数。
对于规模较小的动物园,输入 teen 时:
group
child 1
teen 2
adult 2
senior 1
Name: count, dtype: int64
Mean visits for teen: 10.5亲手试试
import pandas as pd
members = pd.read_csv("members.csv")
group = input()
# 在下方编写你的代码
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
机器学习统计学中的所有课
自己练习: Python 在线编译器