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: Index contains duplicate entries, cannot reshape

我试图利用 groupby 和 aggfun=np.sum 但我似乎无法得到我想要的东西。如何获得一个数据透视表,其中显示每个唯一 UNSPSC 的价格总和?

谢谢!

4

2 回答 2

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

这最终为我工作,上面的结果

于 2013-10-17T21:44:33.317 回答
0

不确定这是你想要的,但尝试结合groupby 和 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
于 2013-10-17T19:02:18.857 回答