2016-07-20 13 views
0

Ich habe einen Datenrahmen mit mehreren Gruppenspalten und eine Wertespalte.Wert zählt für alle Kombinationen von Gruppen

a b val 
0 A C 1 
1 A D 1 
2 A D 1 
3 A D 2 
4 B E 0 

Für eine Gruppe, für zB a==A, b==C Ich kann value_counts auf der Serie Scheibe tun. Wie kann ich die Wert-Zählungen aller möglichen Kombinationen der Gruppenspalten in einem Datenrahmenformat ähnlich dem folgenden erhalten:

a b val counts 
0 A C 1 1 
1 A D 1 2 
2 A D 2 1 
2 B E 0 1 

Antwort

1

ist das, was Sie wollen?

In [47]: df.groupby(['a','b','val']).size().reset_index() 
Out[47]: 
    a b val 0 
0 A C 1 1 
1 A D 1 2 
2 A D 2 1 
3 B E 0 1 

oder das?

In [43]: df['counts'] = df.groupby(['a','b'])['val'].transform('size') 

In [44]: df 
Out[44]: 
    a b val counts 
0 A C 1  1 
1 A D 1  3 
2 A D 1  3 
3 A D 2  3 
4 B E 0  1 
Verwandte Themen