I ran a Logit model using stats.models and declared a series with predicted values:
M1 = sm.Logit(y_train, X_train)
M1_results = M1.fit()
y_pred = M1_results.predict(X_train) # This returns a series
y_pred is a series with values between 0 and 1. I want to overwrite its values conditionally by comparing them to an arbitrary cutoff.
Basically, if the i-th element of M1_pred <= 0.7, overwrite with 0. Otherwise, overwrite with 1.
I tried combining a for and an if loop together:
for i in y_pred:
if i <= 0.7:
i = 0
else:
i = 1
How come this didn't overwrite any of the values in y_pred?
I had to resort to slicing (as suggested here):
y_pred[y_pred <= 0.7] = 0
y_pred[y_pred > 0.7] = 1
This will be inconvenient when I move onto multiclass models. How can I achieve the same result using for and if notation?
PS: Excuse my ignorance. I recently moved from R to Python and everything is really confusing.