2016-11-05 2 views
1

팬더에 열 이름이있는 피벗 테이블을 사용하는 데 문제가 있습니다. 여기팬다 피봇 테이블 : 행 합계로 나누는 데 문제가 있습니다.

내 문제

from collections import OrderedDict 
import pandas as pd 


table = OrderedDict((
("Item", ['Item0', 'Item0', 'Item1', 'Item1']), 
('CType',['Gold', 'Bronze', 'Gold', 'Silver']), 
('USD', [1, 2, 3, 4]), 
('EU', [1, 2, 3, 4]) 
)) 
d = pd.DataFrame(table) 

print d 

p = d.pivot_table(index='Item', columns='CType', values='USD') 
print p 

p.fillna(0, inplace=True) 
print p 

아래의 조작은 이상한 모양으로 나에게 NaN이 있습니다. 내가 무엇이 누락 되었습니까?

p/p.sum(axis = 1) 

PS : 데이터의 예는 here에서 가져옵니다하지만 내 자신의 데이터가 동일한 동작을 대신

답변

3

사용 DF.div 표시 : afore-에

p.div(p.sum(1), 0) 

enter image description here

axis=1을 위에서 언급 한 방법은 이전에 수행 한 방식과 비슷한 방식으로 동작합니다. 모두 Nans.

axis=0을 입력하여 행별로 (인덱스를 따라) 계산해야합니다.

+1

Nickil에게 감사드립니다. 이것은 훌륭하고 예상대로 작동합니다. 그러나 피벗 작업에서 오는 "명명 된 열"을 처리하는 방법에 대해 궁금해하고 있습니다. 별도의 질문을 게시 할 것입니다. – user1043144

관련 문제