Ausgabe
Ich habe DataFrame in Python Pandas wie unten:
ID | COL1| COL2 | COL3
----------|------|------
123 | XXX | 0 | 1
123 | XXX | 1 | 1
444 | ABC | 1 | 1
444 | ABC | 1 | 1
555 | PPP | 0 | 0
Und ich muss auf diese Weise Duplikate über DF einfügen:
- wenn in COL2 oder COL3 mindestens einmal ‘1’ ist, dann sollte in diesen Spalten für ID 1 stehen (egal wie oft er in den genannten Spalten 0 hatte)
- Rest der Spalten sollte noch in der Ausgabe sein
- In COL1 gibt es keine Duplikate pro ID
Als Ergebnis brauche ich eine Ausgabe wie unten (ich habe viel mehr Spalten, also brauche ich in der Ausgabe nicht nur ID, COL2, COL3, sondern ID, COL1, COL2, COL3)
ID | COL1| COL2 | COL3
----|-----|------|-----
123 | XXX | 1 | 1
444 | ABC | 1 | 1
555 | PPP | 0 | 0
Wie kann ich das in Python Pandas machen?
Lösung
Verwenden Sie ein groupby.max
:
out = df.groupby(['ID', 'COL1'], as_index=False).max()
Ausgang:
ID COL1 COL2 COL3
0 123 XXX 1 1
1 444 ABC 1 1
2 555 PPP 0 0
Beantwortet von – mozway
Antwort geprüft von – Pedro (FixError Volunteer)