Ich versuche, einen sauberen Weg zu finden, um eine neue Spalte in einem Datenrahmen mit der Rangliste der Gruppe/Untergruppe basierend auf der Summe eines Wertes zu erstellen.
Hier ist ein einfaches Beispiel: < Br />df = pd.DataFrame({
"group": ["a", "a", "a", "a", "a", "b", "b", "b", "b", "b","c"],
"subgroup": ["i","ii","i","ii","i","ii","i","ii","i","ii","ii"],
"value": [2, 4, 2, 3, 5, 1, 2, 4, 1, 5, 11] })
< /code>
Die Ausgabe, die ich gerne hätte, ist: < /p>
|group |subgroup| value | rank |
|------|--------|-------|------|
| "a" | "i" | 2 | 3 |
| "a" | "ii" | 4 | 4 |
| "a" | "i" | 2 | 3 |
| "a" | "ii" | 3 | 4 |
| "a" | "i" | 5 | 3 |
| "b" | "ii" | 1 | 2 |
| "b" | "i" | 2 | 5 |
| "b" | "ii" | 4 | 2 |
| "b" | "i" | 1 | 5 |
| "b" | "ii" | 5 | 2 |
| "c" | "i" | 11 | 1 |
< /code>
Weil die Summe des Wertes der Untergruppe ["a", "i"] 9 beträgt, was es zur drittgrößten Untergruppe macht.
Ich weiß, dass es einfach klingt zu tun, aber ich kann keinen effizienten Weg finden, es mit Pandas zu tun ...
Mit der Rangliste der Gruppe/Untergruppe in einer neuen Spalte eines Datenrahmens ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post