首页 > 解决方案 > 如何使用新名称(用于)为每次迭代在数据框中添加一个新列?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

我怎样才能改变我的循环来得到它?

标签: pythonpandas

解决方案


您可以在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

推荐阅读