Voici un exemple de dataframe :
X Y Z
1 0 1
0 1 0
1 1 1
Maintenant, voici la règle que j'ai trouvée :
- X est laissé tel quel
- Si Y est égal à 1, mettez la valeur correspondante dans X à 0.
- Si Z est égal à 1, mettez la valeur correspondante dans X et Y à 0.
Le cadre de données final devrait ressembler à ceci :
X Y Z
0 0 1
0 1 0
0 0 1
Ma première idée de solution est la suivante :
df_null_list = ['X']
for i in ['Y', 'Z']:
df[df[i] == 1][df_null_list] = 0
df_null_list.append(i)
Lorsque je fais cela et que j'additionne sur l'axe des y, je commence à obtenir des valeurs de 2 et 4 qui n'ont aucun sens. Remarque : je me réfère à l'exécution sur l'ensemble des données réelles.
Avez-vous des suggestions d'améliorations ou de solutions alternatives ?