数据集age变量分箱求助:使用pd.cut划分青年/成年/老年失败
解决pd.cut划分年龄组的问题
我一眼就瞅到代码里的小疏漏啦,这大概率就是导致运行失败的核心原因,咱们一步步来修正:
1. 修正变量名拼写错误
你把labels写成了lables(少了一个字母e),这会让Python找不到这个变量,直接抛出报错。
2. 确保导入了pandas库
如果还没导入pandas,得先补上这行代码:
import pandas as pd
3. 验证age列的数据类型
要确保train['age']是数值类型(比如int或float),如果是字符串格式,pd.cut会直接报错。可以用下面的代码检查:
print(train['age'].dtype)
如果输出是object类型,得先转成数值格式:
train['age'] = pd.to_numeric(train['age'], errors='coerce')
修正后的完整代码
import pandas as pd # 假设你的train数据集已经加载完成 bins = [0, 30, 60, 90] labels = ["young", "adult", "old"] # 这里修正了拼写错误 train['age_group'] = pd.cut(train['age'], bins=bins, labels=labels, include_lowest=True)
(我把新生成的分组列命名为age_group,这样不会覆盖原来的age列,如果你想直接覆盖原列,改回train['age']就行)
另外补充一句:include_lowest=True会把0这个边界值包含到第一个分组里,也就是年龄为0的样本会被归为"young",这个设置是合理的。
内容的提问来源于stack exchange,提问作者vishnu
相关产品推荐
相关产品推荐

