Python 如何根据两个不同栏目的分数组成三个不同的班级,有人能指导我吗,请参考我的代码 如果ios_得分>0.5,android_得分0.5,android_分数>0.5,则在输出列中将其分组为“ios+android用户”

Python 如何根据两个不同栏目的分数组成三个不同的班级,有人能指导我吗,请参考我的代码 如果ios_得分>0.5,android_得分0.5,android_分数>0.5,则在输出列中将其分组为“ios+android用户”,python,pandas,dataframe,Python,Pandas,Dataframe,我试着使用下面的代码,但我得到了TypeError TypeError:无法使用数据类型为[float64]的数组和类型为[bool]的标量执行“rand_u2;” scores_df.sample(5) O/P names ios_score android_score Output A1 0.428571 0.571429 ? A2 0.541667 0.708333 ? A3 0.33333

我试着使用下面的代码,但我得到了TypeError

TypeError:无法使用数据类型为[float64]的数组和类型为[bool]的标量执行“rand_u2;”

scores_df.sample(5)

O/P

names   ios_score   android_score  Output

A1       0.428571   0.571429         ?

A2       0.541667   0.708333         ?  

A3       0.333333   0.485714         ?

scores_df.loc[(scores_df['ios_score'] > 0.5 & scores_df['android_score'] < 0.5 ), 'output'] = "iOS" 
scores_df.loc[(scores_df['ios_score'] < 0.5 & scores_df['android_score'] > 0.5 ), 'output'] = "Android"
scores_df.loc[(scores_df['ios_score'] > 0.5 & scores_df['android_score'] > 0.5 ), 'output'] = "iOS + Android"
scores_df.head()
分数样本(5)
O/P
命名ios_分数android_分数输出
A1 0.428571 0.571429?
A2 0.541667 0.708333?
A3 0.333333 0.485714?
分数df.loc[(分数df['ios_分数']>0.5和分数df['android_分数']<0.5),'output']=“ios”
分数df.loc[(分数df['ios_分数']<0.5和分数df['android_分数']>0.5),'output']=“android”
得分_-df.loc[(得分_-df['ios_-score']>0.5和得分_-df['android_-score']>0.5),'output']=“ios+android”
总分()

使用
np。选择
可以指定要检查的条件列表,如果各个条件匹配,则可以指定要输出的值列表:

df['Output'] = np.select([
        ((df['ios_score'] > 0.5) & (df['android_score'] > 0.5)),
        (df['ios_score'] > 0.5),
        (df['android_score'] > 0.5)],
    ['iOS + Android', 'iOS', 'Android'], default='Other')

df
输出:

  names  ios_score  android_score         Output
0    A1   0.428571       0.571429        Android
1    A2   0.541667       0.708333  iOS + Android
2    A3   0.333333       0.485714          Other

我相信您缺少括号,因为&的优先级高于,所以请尝试
。。。((分数df['ios\u score']>0.5)和(分数df['android\u score']<0.5))
@piterberg是的,你是正确的,在添加括号后,工作正常。非常感谢你的作品!np.select选项真的很有趣,非常感谢您分享。太好了,我很高兴它有帮助!