2013-10-17 61 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 

就这样结束了,我的工作与上述结果