Angesichts der folgenden Datenrahmen:Pandas Flag Reihen mit Complementary Zeros
import pandas as pd
df=pd.DataFrame({'A':[0,4,4,4],
'B':[0,4,4,0],
'C':[0,4,4,4],
'D':[4,0,0,4],
'E':[4,0,0,0],
'Name':['a','a','b','c']})
df
A B C D E Name
0 0 0 0 4 4 a
1 4 4 4 0 0 a
2 4 4 4 0 0 b
3 4 0 4 4 0 c
Ich möchte ein neues Feld hinzufügen „Match_Flag“, die einzigartige Kombinationen von Reihen-Etiketten, wenn sie ergänzende Null-Muster haben (wie bei Zeilen 0, 1 und 2) UND haben denselben Namen (nur für Zeilen 0 und 1). Es verwendet den Namen der übereinstimmenden Zeilen.
Das gewünschte Ergebnis ist wie folgt:
A B C D E Name Match_Flag
0 0 0 0 4 4 a a
1 4 4 4 0 0 a a
2 4 4 4 0 0 b NaN
3 4 0 4 4 0 c NaN
Caveat: Die Muster können variieren, aber immer noch komplementär sein sollte.
Vielen Dank im Voraus!
UPDATE
Sorry für die Verwirrung. Hier ist eine Klarstellung:
Der Grund, warum Zeilen 0 und 1 "komplementär" sind, ist, dass sie entgegengesetzte Muster von Nullen in ihren Spalten haben; 0,0,0,4,4 vs, 4,4,4,0,0. Die Zahl 4 ist beliebig; es könnte genauso gut 0,0,0,4,2 und 65,770,23,0,0 sein. Wenn zwei solcher Zeilen tatsächlich komplementär sind und denselben Namen haben, möchte ich, dass sie unter der Spalte "Match_Flag" mit demselben Namen gekennzeichnet werden.
nie Leiter der "kostenlose", bitte erläutern. – Merlin
Was ich mit komplementär verstehe, ist, dass die Spalten in einer Zeile, die Null sind, in einem anderen nicht Null sind, und umgekehrt. Deshalb sind die ersten 2 Zeilen kostenlos; Sie haben Nullen in entgegengesetzten Spalten. –