在写变量自动分箱时,想实现一个循环功能,出现下边了如题般的报错。
稍微解释一下这段代码想实现的功能,threshold是卡方阈值,cvs是每次循环后的分箱阈值。当cvs.min() 但如果执行到最后,cvs.min()可能还是小于threshold,这就会使得cvs变成一个空列表。空列表无法求min就会出现该报错。 解决方法是在求min之前,先判断一下是否为空列表,这样就不会报错了。 _c1 = lambda x: x < threshold
while _c1(cvs.min()):
cvs, freq, cutoff = chi2_merge_core(cvs, freq, cutoff, cvs.argmin())
二、解决方法
_c1 = lambda x: x < threshold
while _c1(cvs.min() if len(cvs)>0 else 100):
cvs, freq, cutoff = chi2_merge_core(cvs, freq, cutoff, cvs.argmin())