在 python 中发出多个 return 语句

Multiple return statements issue in python

我写了一个函数,它将训练数据帧和测试数据帧作为输入。

在这个函数中,我创建了三个变量 train、test 和 target

def rem_miss_vals(trainDF, testDF):
    trainDF = trainDF[np.isfinite(trainDF)]
    testDF = testDF[np.isfinite(testDF)]
    train = trainDF.values
    train = train[0::, 1:]
    target = train[0::, 0]
    test = testDF.values
    return train, test, target

我想在下面的函数中使用训练、测试和目标

def get_variable_rankings(trainingset, targetset, testset):
    logit = linear_model.LogisticRegression()
    logreg = RFE(logit, 1)
    logreg.fit(trainingset, targetset)
    logitPredictions = logreg.predict(testset)
    variablerankings =  logreg.ranking_
    variablerankings = variablerankings.tolist()
    return variablerankings

实际代码:

当我在 main() 函数中调用这些函数时,我收到错误消息:train is not defined

rem_miss_vals(trainDF, testDF)
get_variable_rankings(train, target, test)

在 rem_miss_vals() 中,我清楚地归还了它们,但我不明白为什么我无法在 get_variable_rankings() 函数中使用训练、目标和测试

有人可以帮忙吗?

您必须将 return 值分配给一些变量,以便它们在范围内:

train, test, target = rem_miss_vals(trainDF, testDF)
variablerankings = get_variable_rankings(train, target, test)

或者,将它们直接拼写到下一个函数:

variablerankings = get_variable_rankings(*rem_miss_vals(trainDF, testDF))