2016-12-21 24 views
-1

私はパンダに頻度表を持っています。私は臭気のレベルごとに各クラスの頻度をリストに抽出し、各要素は特定のレベルの匂いのクラスの頻度カウントを含むNumPy配列です。手動で行と列を指定せずにこれを行うにはどうすればよいですか?パンダの頻度表から配列を抽出する方法

これは私が持っているものである。その結果

test=df.groupby(['odor', 'class']) 
test.size() 

odor class 
a  e   400 
c  p   192 
f  p  2160 
l  e   400 
m  p   36 
n  e  3408 
     p   120 
p  p   256 
s  p   576 
y  p   576 
dtype: int64 

答えて

0

はあなたで動作するようにゼロデータを提供してきましたことを覚えておいてください。あなたが残した手がかりの半分に基づいて、あなたのデータがどのように見えるかを完全に推測しています。

df = pd.DataFrame(
    { 
     'odor': np.random.choice(list('acflmnpsy'), 100), 
     'class': np.random.choice(list('ep'), 100), 
     'frequency': np.random.choice(np.arange(60, 241), 100) 
    } 
) 

df.groupby(['odor', 'class']).frequency.apply(np.array) 

odor class 
a  e        [170, 178, 67, 97] 
     p         [183, 165, 73] 
c  e       [106, 163, 71, 171] 
     p      [72, 224, 112, 196, 134] 
f  e    [134, 67, 190, 226, 74, 62, 107] 
     p    [222, 74, 177, 186, 122, 120, 121] 
l  e     [81, 97, 124, 181, 101, 185] 
     p       [182, 136, 77, 190] 
m  e     [217, 121, 141, 102, 171, 106] 
     p    [127, 178, 127, 72, 209, 63, 167] 
n  e     [166, 121, 79, 117, 130, 92] 
     p       [71, 136, 219, 155] 
p  e   [118, 193, 147, 219, 154, 130, 169] 
     p    [69, 162, 138, 193, 236, 144, 192] 
s  e        [105, 139, 143] 
     p      [72, 149, 186, 220, 63] 
y  e   [143, 134, 102, 144, 186, 207, 181] 
     p  [177, 215, 190, 158, 203, 157, 85, 172] 
Name: frequency, dtype: object 
0

これはあなたの探しているものですか?

df.pivot_table(index = ['Class']、列= ['Odor']、値= ['freq']、aggfunc = 'sum')

関連する問題