如何检测DataFrame中的字符串值并解决sklearn特征选择报错
解决SelectKBest因k参数类型不匹配导致的报错
问题根源
你之前排查了数据类型、NaN/Inf值,但实际报错的核心原因是给SelectKBest的k参数传入了字符串类型的'8'——sklearn的SelectKBest要求k必须是整数类型,字符串会直接触发类型不匹配错误。
修复方案
- 直接将
k的取值改为整数:
把代码中类似k='8'的写法改成k=8。 - 如果
k值来自外部输入(比如配置文件、用户输入),先做类型转换:k_input = '8' # 假设这是外部获取的字符串值 k = int(k_input) selector = SelectKBest(score_func=你的评分函数, k=k)
验证示例
正确的初始化代码示例:
from sklearn.feature_selection import SelectKBest, f_classif # 正确使用整数类型的k参数 selector = SelectKBest(score_func=f_classif, k=8) selector.fit(X, y)
内容的提问来源于stack exchange,提问作者rp259
相关产品推荐
相关产品推荐

