在计算分类时,bins参数需要传入一个递增的数组,表示分组的边界。在这里,由于归一化后的总分值在0到1之间,因此可以将bins设置为[0, 0.4, 0.45, 1]:

df['分类'] = pd.cut(df['总分'], bins=[0, 0.4, 0.45, 1], labels=['一般', '较好', '优秀'])

完整代码:

df['英语'] = df['英语'].apply(lambda x: (x-df['英语'].min())/(df['英语'].max()-df['英语'].min())) df['体育'] = df['体育'].apply(lambda x: (x-df['体育'].min())/(df['体育'].max()-df['体育'].min())) df['军训'] = df['军训'].apply(lambda x: (x-df['军训'].min())/(df['军训'].max()-df['军训'].min())) df['数分'] = df['数分'].apply(lambda x: (x-df['数分'].min())/(df['数分'].max()-df['数分'].min())) df['高代'] = df['高代'].apply(lambda x: (x-df['高代'].min())/(df['高代'].max()-df['高代'].min())) df['解几'] = df['解几'].apply(lambda x: (x-df['解几'].min())/(df['解几'].max()-df['解几'].min())) df['总分'] = df['英语']+df['体育']+df['军训']+df['数分']+df['高代']+df['解几'] df['分类'] = pd.cut(df['总分'], bins=[0, 0.4, 0.45, 1], labels=['一般', '较好', '优秀']) df.head(20

怎么归一化的数据后重新分类我这个报错ValueError bins must increase monotonicallydf英语 = df英语applylambda x x-df英语mindf英语max-df英语mindf体育 = df体育applylambda x x-df体育mindf体育max-df体育mindf军训 = df军训applylambda x x-df军训mindf军训max

原文地址: https://www.cveoy.top/t/topic/fiwm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录