Возможно, я неправильно понимаю вашу цель, но я думаю, что ваша ошибка заключается в следующей строке:
pred_coef = np.append(pred_coef, np.transpose(np.array(model_log.coef_)), axis= 0)
Вы создали DataFrame pred_coef, поэтому, похоже, вам следует использовать функциональность df.append..
pred_coef = pred_coef.append(pd.Series(model_log.coef_[0]), ignore_index=True)
Это должно предоставить вам DataFrame с каждой строкой, являющейся коэффициентами для данного y.
EDIT: @Alollz подчеркивает, что итеративное добавление к DataFrame неэффективно,Это можно сделать, просто создав список перед циклом, а не создавая DataFrame pred_coef и добавляя к нему коэффициенты.Затем вы можете создать свой Dataframe из списка.Например,
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 42)
accuracy_logistic = np.ones(y.shape[1],dtype = float)
model_log = []
y_pred_output = np.array([])
coef_list = []
for i in range(0,y.shape[1]):
model_log = LogisticRegression(class_weight='balanced')
model_log.fit(X_train,y_train[:,i])
log_prediction = model_log.predict(X_test)
accuracy_logistic[i] = accuracy_score(y_test[:,i],log_prediction)
coef_list.append(model_log.coef_[0])
pred_coef = pd.DataFrame(coef_list)