2017-05-11 15 views
0

私はパンダの関数を探しています。これは、DataFrameという2つの列からなる次の基本的な操作に適用されます。私は、第2列の各特定の値が与えられた場合、第1列の要素の条件付き分布を取得したいと考えています。パンダで2列の頻度を集計する

ここは例です。与えられた:

import pandas as pd 
pd.DataFrame([['a', 'b'], ['a', 'b'], ['a', 'b'], ['b', 'b'], ['b', 'b'],['a','a']]) 

のように見えた:

0 1 
0 a b 
1 a b 
2 a b 
3 b b 
4 b b 
5 a a 

我々は得なければならない:これらは、周波数分布であるとして、列が1にまとめる必要があることを

'a' 'b' 
'a' 1 0.6 
'b' 0 0.4 

注意を。

答えて

1
import pandas as pd 
data = pd.DataFrame([['a', 'b'], ['a', 'b'], ['a', 'b'], ['b', 'b'], ['b', 'b'],['a','a']]) 

#Answer: 
pd.crosstab(data[0],data[1]).apply(lambda r: r/r.sum(), axis=0) 


1 a b 
0  
a 1 0.6 
b 0 0.4 
関連する問題