Sagen wir, ich habe einen Datenrahmen wie folgt aus:Pandas: assign kategorische Spalte basierend auf String-Werte in einer anderen Spalte
A B
1 05010001 17
2 05020001 5
3 05020002 11
4 05020003 2
5 05030001 86
6 07030001 84
7 07030002 10
8 08010001 16
ich eine dritte Spalte hinzufügen möchten, C
, die 1
auf alle Zeilen zuordnet, die A
Wert beginnt mit 05
, 2
zu allen Werten beginnend mit 07
und so weiter.
wäre das Ergebnis:
A B C
1 05010001 17 1
2 05020001 5 1
3 05020002 11 1
4 05020003 2 1
5 05030001 86 1
6 07030001 84 2
7 07030002 10 2
8 08010001 16 3
Was dies zu tun, ist die effizienteste Art und Weise? Mein aktueller Datenrahmen hat 3.000.000 Zeilen.
EDIT
Spalte A
in meinem eigentlichen Datenrahmen ist First (C)
, mit einem Raum. Ich darf das nicht ändern. Muss ich eine Manipulation am Spaltenkopf vornehmen?
Eine Sache. In meinem tatsächlichen Fall wird die Spalte "A" "First (C)" genannt. Wenn Sie mit Ihrem Snippet spielen, treten beim Aufruf des 'A.str [: 2]' -Teils Probleme auf. Ich nehme 'A.str' bezieht sich auf Spalte' A', aber was, wenn sein Name anders ist, als in meinem Fall? – FaCoffee
Sie können sie in Klammern setzen wie 'df.sort_values ('First (C)') ['First (C)']. Str [: 2]' – Psidom