2017-12-15 4 views
1

私は、パンダのデータフレームの値が別の値とともに発生した回数をカウントし、各行の回数をカウントしようとしています。値Aが値Bで発生する回数をカウントします。

これは私が何を意味するかです:

a t 
0 a 2 
1 b 4 
2 c 2 
3 g 2 
4 b 3 
5 a 2 
6 b 3 

は、私が倍aの量をカウントしたいと数2に沿って発生し、私がする結果が欲しい:

a t freq 
0 a 2 2 
1 b 4 1 
2 c 2 1 
3 g 2 1 
4 b 3 2 
5 a 2 2 
6 b 3 2 

freq(頻度)列は、列aの値が列tの値とともに表示される回数を示します。

aが発生した回数だけカウントすると、私のデータフレームのサイズを考慮して間違った頻度になります。

これをPythonで実現する方法はありますか? sizeまたはcount

答えて

3

使用transform

df['freq'] = df.groupby(['a', 't'])['a'].transform('size') 
#alternative solution 
#df['freq'] = df.groupby(['a', 't'])['a'].transform('count') 
print (df) 
    a t freq 
0 a 2  2 
1 b 4  1 
2 c 2  1 
3 g 2  1 
4 b 3  2 
5 a 2  2 
6 b 3  2 
+0

おかげで、pefectly働きました。 – Matt

関連する問題