2016-04-27 8 views
0

In Pandas, Wie Nummerierung/Sequenzierung für Sätze der gleichen Spalte Werte tun? Zum Beispiel:Pandas Numerierung/Sequenzierung für Sätze der gleichen Spalte Werte

Col1 Col2 
Andy 1 
Chad 1 
Bill 1 
Andy 2 
Bill 2 
Bill 3 
Chad 2 

Bill 4 Seit Andy 2 Werte bekam, will ich es 1 und 2 in Spalte 2 Bill nummerieren, mag ich es an der Nummer 1, 2, 3 und 4 und so weiter.

+0

Ich habe versucht: def func (x): x = x.append (rannge (len (x)) df.groupby ('Col1') gelten (funk) und es ist super langsam auf große Datenmengen. –

Antwort

1

Wenn ich richtig verstehe, wollen Sie eine kumulative Zählung der Namen in Col2, die einfach sein würde;

df['Col2'] = df.groupby('Col1').cumcount()+1 

Ein Beispiel;

Col1 
0 Andy 
1 Chad 
2 Bill 
3 Andy 
4 Bill 
5 Bill 
6 Chad 
7 Bill 

df['Col2'] = df.groupby('Col1').cumcount()+1 

    Col1 Col2 
0 Andy  1 
1 Chad  1 
2 Bill  1 
3 Andy  2 
4 Bill  1 
5 Bill  2 
6 Chad  2 
7 Bill  3 
+0

Vielen Dank.Das Problem, das ich habe, ist, dass in meinem Datensatz die Gesamtzahl der eindeutigen Namen 16 Millionen ist.So, Group by ist sehr langsam.Sie haben irgendwelche Suggestions, um den Prozess zu beschleunigen? –

Verwandte Themen