2013-10-17 80 views
2

我正在處理包含多個UNSPSC代碼的數據,每個代碼使用不同的價格。 我想獲得一個數據透視表,它將每個UNSPSC代碼的所有價格組合在一起。熊貓樞軸表,處理列中的多個值

最終,我想以最高的價格提取排名前5位的UNSPSC。

UNSPSC= pivot_table(analysis, rows=['UNSPSC'], cols =['Extended Price']) 

這絕對不行。我不想要它提供的所有列。我只想要兩個。 UNSPSC,然後將總價與唯一代碼關聯起來。

<class 'pandas.core.frame.DataFrame'> 
Index: 78 entries, 12142100.0 to 55121611.0 
Columns: 21924 entries, ($ Difference, 2.70000004768) to (Quantity, 3255.19995117) 
dtypes: float64(21924) 

我也試圖通過

UNSPSC =analysis.pivot(index = 'UNSPSC', columns ='Extended Price') 

我的錯誤是 ReshapeError樞:索引包含重複的條目,不能重塑

我試圖利用GROUPBY和aggfun = np.sum但我似乎無法得到我正在尋找的東西。 我怎樣才能得到一個數據透視表,顯示每個獨特的UNSPSC的價格總和?

謝謝!

回答

0

不知道這是你想要的東西,但要儘量結合groupby and aggregate

>>> analysis = pd.DataFrame({"UNSPSC":["aa", "aa", "bb", "bb", "bb"], "ExtendedPrice": [1.1, 5.1, 3.5, 4.3, 3.0]}) 
>>> analysis.groupby('UNSPSC').aggregate(np.sum) 
     ExtendedPrice 
UNSPSC    
aa    6.2 
bb    10.8 
0
from pandas import pivot_table 
import numpy as np 


UNSPSC = pivot_table(analysis, values = 'Extended Price', rows = 'UNSPSC', aggfunc = np.sum) 


Pivot = UNSPSC.order(ascending = False) 
UNSPSC 
12352200 350045.593750 
12352100 165760.484375 
12352300  96212.031250 
12190000  68791.710938 
12352000  62938.332031 

就這樣結束了,我的工作與上述結果