2016-11-05 96 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 

下面的操作給我楠一個奇怪的形狀。 我錯過了什麼?

p/p.sum(axis = 1) 

PS:數據的例子,從here拍攝,但我自己的數據顯示相同的行爲

回答

3

使用DF.div代替:

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

enter image description here

axis=1在afore-上述方法的行爲與您之前完成的方式類似,導致所有Nans

您必須通過提供axis=0來使其按行計算(沿索引)。

+1

感謝Nickil。這很棒,並按預期工作。然而,我仍然想知道如何處理來自樞軸操作的「命名列」。將發佈一個單獨的問題 – user1043144