如何根据两个不同栏目的分数组成三个不同的班级,有人能指导我吗,请参考我的代码

2024-10-06 03:48:04 发布

您现在位置:Python中文网/ 问答频道 /正文

  • 如果ios_分数>;0.5和android_分数<;0.5,在输出列中将其分组为“iOS用户”
  • 如果ios_得分<;0.5和android_分数>;0.5,在输出列中将其分组为“Android用户”
  • 如果ios_分数>;0.5和android_分数>;0.5,在输出列中将其分组为“iOS+Android用户”

我试着使用下面的代码,但我得到了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()

1条回答
网友
1楼 · 发布于 2024-10-06 03:48:04

使用np.select可以指定要检查的条件列表,如果相应条件匹配,则可以指定要输出的值列表:

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

相关问题 更多 >