如何打印p值序列中小于alpha阈值的对应特征名及数值
问题原因
你原有代码仅遍历了p值Series的数值部分,没有拿到存储特征名的Series索引,因此无法输出特征和p值的对应关系。
实现方案
方案1:遍历键值对(最易理解)
调用pandas Series的items()方法可以同时拿到特征名和对应p值:
alpha = 0.05 for feature, p_val in pVals.items(): if p_val < alpha: print(f"{feature} - {p_val}")
运行后输出符合你要求的格式:
const - 1.900672940949515e-26 ethnicity - 0.0028169220335196596 gender - 2.898287594231024e-05 age - 0.013292030000000002
方案2:pandas向量化操作(更简洁)
直接用布尔索引筛选符合要求的p值,默认就会同时输出特征名和p值:
alpha = 0.05 print(pVals[pVals < alpha])
如果需要完全匹配「特征名 - p值」的格式,可以再加一步格式化:
alpha = 0.05 filter_p = pVals[pVals < alpha] for feature, p_val in filter_p.items(): print(f"{feature} - {p_val}")
内容的提问来源于stack exchange,提问作者Jaime
相关产品推荐
相关产品推荐

