python中有多个return语句

时间:2015-05-22 03:43:21

标签: python numpy return

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

在这个函数中,我创建了三个变量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

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

在rem_miss_vals()中,我清楚地归还了它们,但我不明白我无法在get_variable_rankings()函数中使用火车,目标和测试

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

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

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

或者,将它们直接映射到下一个函数:

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