series/dataframe的某一列使用for if else语句

背景:
希望能将训练集的概率值y_train_predict_proba分类,比如0.44879分到[0.4,0.5)这个区间中,依次类推。想法是增加一列predict_proba_range,然后使用if else,但发现还挺不容易实现,查阅各种资料后,写出如下代码。

要点:
①创建一个空列表装生成的字段predict_proba_range
②必须把series转化成list,使用.tolist()。
③使用append

df_train=pd.DataFrame(x_train)
df_test=pd.DataFrame(x_test)
df_train['y_train']=y_train
df_test['y_test']=y_test
df_train['y_train_pred']=y_train_pred
df_test['y_test_pred']=y_test_pred
df_train['y_train_predict_proba']=y_train_predict_proba

predict_proba_range=[]
for y_train_predict_proba in df_train['y_train_predict_proba'].tolist():
    if y_train_predict_proba>=0.9:
        tmp='>0.9'
        predict_proba_range.append(tmp)
    elif  y_train_predict_proba>=0.8 and y_train_predict_proba<0.9:
        tmp='[0.8,0.9)'
        predict_proba_range.append(tmp)
    elif  y_train_predict_proba>=0.7 and y_train_predict_proba<0.8:
        tmp='[0.7,0.8)'
        predict_proba_range.append(tmp)
    elif  y_train_predict_proba>=0.6 and y_train_predict_proba<0.7:
        tmp='[0.6,0.7)'
        predict_proba_range.append(tmp)
    elif  y_train_predict_proba>=0.5 and y_train_predict_proba<0.6:
        tmp='[0.5,0.6)'
        predict_proba_range.append(tmp)
    elif  y_train_predict_proba>=0.4 and y_train_predict_proba<0.5:
        tmp='[0.4,0.5)'
        predict_proba_range.append(tmp)
    elif  y_train_predict_proba>=0.3 and y_train_predict_proba<0.4:
        tmp='[0.3,0.4)'
        predict_proba_range.append(tmp)
    elif  y_train_predict_proba>=0.2 and y_train_predict_proba<0.3:
        tmp='[0.2,0.3)'
        predict_proba_range.append(tmp)
    elif  y_train_predict_proba>=0.1 and y_train_predict_proba<0.2:
        tmp='[0.1,0.2)'
        predict_proba_range.append(tmp)
    elif  y_train_predict_proba>=0 and y_train_predict_proba<0.1:
        tmp='[0,0.1)'   
        predict_proba_range.append(tmp)    
df_train['predict_proba_range']=predict_proba_range

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值