2016-07-20 9 views
0

私は複数のグループの列と値の列を持つデータフレームを持っています。例えばa==Aのためのいずれかのグループのためにグループのすべての組み合わせの値の数

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

b==C私はシリーズのスライス上value_countsを行うことができます。グループの列の可能なすべての組み合わせの値のカウントを、次のようなデータフレーム形式で取得するにはどうすればよいですか。

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

答えて

1

です。

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 

またはこれは?

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 
関連する問題