I ont cette df
dataframe:filtrer les lignes de trame de données selon la valeur de la colonne max
artist track class1 class2 class3
0 Portishead Roads 0.98 0.02 0.0
1 Yo La Tengo Our Way to Fall 0.14 0.86 0.0
2 Radiohead Fake Plastic Trees 0.03 0.97 0.0
Compte tenu de ces entrées d'utilisateur:
input_value = 0.8
input_class = 'class2'
J'utilise le code suivant dans réordonner la trame de données selon la classe2 valeur maximale:
for col in df.ix[:,'class1':'class3']:
if col == input_class:
reordered_df = df.iloc[(df[input_class] - input_value).argsort()]
comme ceci:
1 Yo La Tengo Our Way to Fall 0.14 0.86 0.0
2 Radiohead Fake Plastic Trees 0.03 0.97 0.0
0 Portishead Roads 0.98 0.02 0.0
cependant, je dois encore répondre à une condition de classe, qui est la valeur class2 doit être la plus élevée float valeur dans chaque rangée . en d'autres termes:
0 Portishead Roads 0.98 0.02 0.0
doit être désactivé, car la valeur max appartient à une autre classe.
Comment puis-je insérer cette condition sur l'extrait ci-dessus?
Votre df et reorded_df n'ont pas les mêmes valeurs. S'il vous plaît regarder à nouveau. –