2016-12-21 3 views
-1

팬더에 빈도 테이블이 있습니다. 나는 냄새의 레벨마다 각 클래스의 빈도를 추출하여 각 요소가 주어진 냄새 수준에 대한 클래스의 빈도 카운트를 포함하는 NumPy 배열이되도록합니다. 수동으로 행과 열을 지정하지 않고 어떻게이 작업을 수행 할 수 있습니까?팬더의 빈도 테이블에서 배열을 추출하는 방법

이 내가 가진 무엇 :

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

당신이 작업하는 제로 데이터를 제공 한 유의 사항 : 결과

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

. 내가 남긴 단서를 바탕으로 데이터가 어떻게 보이는지 완전히 추측합니다.

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 (인덱스 = '클래스', 열 = '합'aggfunc [ '냄새', 값 = '주파수'])

관련 문제