如何使用新名称(使用for)为每次迭代在数据帧中添加新列?python

如何使用新名称(使用for)为每次迭代在数据帧中添加新列?python,python,pandas,Python,Pandas,我想对列表中的每一项进行计算。然后,我想将这些新值添加到数据帧中的列中。列的名称应为:name\u item 这就是我到目前为止所做的: list_thr = [0.1, 0.5] for n in list_thr: y_scores = (best_classifier.predict_proba(X_test)[:,1]>=n).astype(int) probs_score = best_classifier.predict_proba(X_test)

我想对列表中的每一项进行计算。然后,我想将这些新值添加到数据帧中的列中。列的名称应为:name\u item 这就是我到目前为止所做的:

list_thr = [0.1, 0.5]


for n in list_thr:
    y_scores = (best_classifier.predict_proba(X_test)[:,1]>=n).astype(int) 
    probs_score = best_classifier.predict_proba(X_test)

    df_final['preds'] = y_scores #df_final is the dataframe I want to put the columns
但是,如果我保留它,“preds”列将在每个iteraction中被替换。 我想要的是每个iTreaction对应一列,名称中有“n”,例如:

df_最终版本:

preds_0.1   preds_0.5
1           1
0           0
0           1
0           0
1           1

如何更改循环以获得该结果?

您可以在定义列名时将
n
作为列名的一部分进行迭代。这将为每个循环创建一个名为
preds
和后缀
n
的新列:

for n in list_thr:
    y_scores = (best_classifier.predict_proba(X_test)[:,1]>=n).astype(int) 
    probs_score = best_classifier.predict_proba(X_test)

    df_final['preds'+str(n)] = y_scores