You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中for循环仅处理首个变量,其余变量未执行的问题求助

问题原因与解决方案

你的代码里的**return i语句被放在了for循环内部**,这是导致循环只处理第一个变量的核心原因。

return语句的作用是立即终止函数并返回指定值,当循环第一次处理Infant_Deaths后,函数就执行了return i,直接结束了整个函数的运行,后续的特征(比如Hepatitis、Measles等)根本没有机会进入循环逻辑。

修正后的代码

把return语句移出循环(如果不需要返回值,甚至可以直接删掉):

def outliers(features, df):
    for i in features:
        Q1 = df[i].quantile(0.25)
        Q3 = df[i].quantile(0.75)
        IQR = Q3 - Q1
        upper = Q3 + (1.5 * IQR)
        lower = Q1 - (1.5 * IQR)
        df.loc[(df[i] > upper), i] = upper 
        df.loc[(df[i] < lower), i] = lower
    # 若需返回处理后的特征列表,可在此添加 return features
    # 不需要返回值则无需写return

outliers(['Infant_Deaths','Hepatitis', 'Measles', 'Underfive_Deaths', 'Polio', 'Diphtheria', 
          'HIV', 'GDP', 'Population','Malnourished10_19','Malnourished5_9', 'Income_Index', 'Schooling'], df)

补充说明

你是在传入的DataFramedf上进行原地修改,所以函数执行完成后,原df就已经是处理好的数据,不需要依赖函数返回值就能查看结果。如果确实需要返回内容,确保return语句在循环全部执行完毕后再触发。

内容的提问来源于stack exchange,提问作者Daddu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 10:50:22