2017-04-19 3 views
1

Sagen, ich habe einen Python-Datenrahmen mit der folgenden Struktur entspricht:Mit Python Datenrahmen Spalt von Zählungen von Zeilen hinzufügen, die Bedingung zu jeder Zeile entsprechen, die es

pd.DataFrame([[1,2,3,4],[1,2,3,4],[1,3,5,6],[1,4,6,7],[1,4,6,7],[1,4,6,7]]) 
Out[262]: 
    0 1 2 3 
0 1 2 3 4 
1 1 2 3 4 
2 1 3 5 6 
3 1 4 6 7 
4 1 4 6 7 
5 1 4 6 7 

Wie kann ich eine Spalte ‚ct‘ genannt hinzufügen, dass zählt die Instanzen des Datenrahmens, wobei Spalte 1-3 zu jeder Zeile passt, die mit übereinstimmt ... also würde der Datenrahmen wie folgt aussehen, wenn alles abgeschlossen ist. verwenden

0 1 2 3 ct 
0 1 2 3 4 2 
1 1 2 3 4 2 
2 1 3 5 6 1 
3 1 4 6 7 3 
4 1 4 6 7 3 
5 1 4 6 7 3 

Antwort

4

können Sie groupby + transform + size:

df['ct'] = df.groupby([1,2,3])[1].transform('size') 
#alternatively 
#df['ct'] = df.groupby([1,2,3])[1].transform(len) 
print (df) 
    0 1 2 3 ct 
0 1 2 3 4 2 
1 1 2 3 4 2 
2 1 3 5 6 1 
3 1 4 6 7 3 
4 1 4 6 7 3 
5 1 4 6 7 3 
+0

Sie Sir, sind ein Lebensretter. –

+2

Froh kann dir helfen! Schöner Tag! – jezrael

+3

Wenn das funktioniert, vergiss nicht die Antwort von @ jezrael zu akzeptieren! –

Verwandte Themen