Reputation: 1889
I wrote a function which takes training dataframe and testing data frame as inputs.
In this function I'm creating three variables train, test and 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
I want to use the train, test and target in the below function
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
ACTUAL CODE:
when I called these functions in main() function I received the error: train is not defined
rem_miss_vals(trainDF, testDF)
get_variable_rankings(train, target, test)
In the rem_miss_vals() I'm clearly returning them but I don't understand whay am I not able to use the train, target and test in the get_variable_rankings() function
Can someone please help?
Upvotes: 2
Views: 363
Reputation: 362786
You'll have to assign the return values to some variables, so that they are in scope:
train, test, target = rem_miss_vals(trainDF, testDF)
variablerankings = get_variable_rankings(train, target, test)
Alternatively, splat them directly to the next function:
variablerankings = get_variable_rankings(*rem_miss_vals(trainDF, testDF))
Upvotes: 3