Le Dataframe donné est
var1 var2 var3 var4 var5 23 1 0 0 0 23 1 0 0 0 43 0 1 1 1 43 0 1 1 1
3 Réponses :
Si j'ai compris votre logique: sortie: p>
Merci. Français. J'aime la solution pour la comparaison et la transformation Var2. Après avoir effectué la première opération DF ['var2'] = df.groupby (["var1 ']) [' var2 ']. Transformer (' Max '). J'ai juste besoin d'éliminer les autres pour d'autres variables, mettant en œuvre quelque chose comme "si Var2 = 1", Var3,4,5 = 0.
Pour traiter d'autres variables, j'aurai probablement besoin de plus de règles générales
Je pense que cela n'est pas bien expliqué depuis ma réponse a 2 rétrogrades :) J'espère que vous me pardonnerez pour cela, car il s'agissait de mon premier code pour faciliter la mise en œuvre d'un ensemble de règles que j'ai appliquées dans Excel mais que je veux automatiser le processus. Je vais expliquer en d'autres termes. Fondamentalement, j'ai une liste de Tranacitons et Var1 est un ID transactionnel. Les variables sont des décisions que je prends en ce qui concerne chaque transaction. var2 - rejet, var3 - correct; VAR4 - Accepter; VAR5 - Accepter et "faire quelque chose d'autre". Les mêmes transactions doivent avoir la même décision prise. Il est arrivé que, pour certaines transactions, la décision est prise séparément, raison pour laquelle ils ont des décisions différentes. Mon objectif est d'ajuster les décisions pour les mêmes transactions de la même manière. En ce qui concerne les décisions, la rejet (VAR2) a une priorité. Si un être rejeté, un autre doit également être rejeté. Une priorité de Var2 vient d'ici. Si var1 = 1; autres = 0 Concernant d'autres variables. Ils peuvent avoir des êtres non exceptionnels, par exemple. var3 = 1; var4 = 1; var5 = 1; Mais dans ce cas var2 = 0 (toujours). Important que les transactions avec le même ID ont les mêmes décisions. J'espère que cela aide. P>
Je pense que je l'ai fait. Peut-être que c'est trop long mais ça marche :)
Merci à Frenchy de nouveau pour "Groupby" Suggestion!
Quels sont les paramètres pour comment
var2 code> est modifié? Est-ce la première occurrence? Est-ce la valeur maximale?
Pourquoi 1 à Var5 est-il remplacé (rangée 2)?
Chris, si l'un des doublons a une valeur de Var2 = 1, un autre duplicate doit être ajusté en conséquence. Quand var2 = 1, var3 =, var4 =, var 5 = 0.
Quand var2! = 1, tous les autres = 1 et doivent être les mêmes pour tous les doublons
anky_91, parce que la deuxième rangée qui est le double du premier (par var1) et doit être ajustée en raison de la priorylty de Var2.
Alors pourquoi 0s est remplacé par 1 dans la rangée 3?