Projektnr | Teilprojektnr | Abteilung | Mitarbeiter |
1 | a | A | 1
1 | a | B | 1
1 | a | C | 2
1 | b | A | 1
1 | b | B | 1
2 | c | A | 3
Mein Ziel:
Projektnr | Anzahl Teilprojektnur | Anzahl Abteilungen | max Mitarbeiter
1 | 2 | 5 | 2
2 | 1 | 1 | 3
Ich möchte als alle gleichen Projektnummern gruppieren, in der zweiten Spalte die Anzahl! der unterschiedlichen Teilprojektnummern ausgeben,
dann die Anzahl der Abteilungen(hier kann ich einfach durchzählen, da die Anzahl der Beauftragungen relevant ist und es keine Rolle spielt, ob es mehrmals die selbe Abteilung ist) und zuletzt die max. Anzahl an Mitarbeitern (hier möchte ich tatsächlich nur den höchsten Wert).
Schwierigkeiten macht mir nun die zweite Spalte. Wie kann ich denn prüfen, wie viele unterschiedliche Teileprojektnr. ich zu einer Projektnr habe.
Ein erster Gedanke wäre jetzt eine funktion schreiben mit if, else und einem counter. Allerdings wüsste ich jetzt gar nicht wie ich zeilenweise vergleichen soll.
Gibt es eine elegantere Lösung?
Bisher habe ich folgendes:
Code: Alles auswählen
gruppiert = df.groupby("Projektnr").agg({"Abteilung":["count"], "Mitarbeiter":["max"]})