我正在使用包含多个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 :(得分: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
答案 1 :(得分: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
这最终为我提供了上述结果