python - 如何使用新名称(用于)为每次迭代在数据框中添加一个新列?Python
问题描述
我想对列表中的每个项目进行计算。然后,我想将这些新值添加到数据框中的列中。列的名称应该是:name_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”列将在每次迭代中被替换。我想要的是每个迭代的 1 列,名称中带有“n”,例如:
df_final:
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