传递的项目数量错误13,位置意味着1,而使用熊猫进行枢轴旋转



如果在panda的透视表函数中添加"column",则会出现上述错误。如果没有"Column",它可以正常工作。

df1 = {'Material Code':['A','B','C','D','E','F','G'], 'Material Desc':['ABC','XYZ','QWE','ERT','MNH','LKJ','HGF'], 'Vendor':['Vendor_1','Vendor_2','Vendor_3','Vendor_4','Vendor_5','Vendor_6','Vendor_7'],'Currency':['INR','INR','INR','INR','USD','USD','USD'],'Months':['JAN','FEB','MAR','JAN','FEB','JAN','APR'], 'GRN Quantity':[100, 200, 500, 400, 100, 100, 500], 'Purchase Price':[10, 15, 20, 45, 45, 12, 15]}
index_data = ['Material Code', 'Material Desc', 'Vendor', 'Currency']
column_data = 'Months'
pf = pd.pivot_table(data=df1,index=index_data, columns=column_data,values=values_data,aggfunc={"GRN Quantity":np.sum, "Purchase Price":np.sum}, fill_value=0).reset_index()

这将是一个很大的帮助,我正在进行一个项目。谢谢

您忘记创建数据帧并设置values_datapivot_table需要一个数据帧作为数据,而不是字典。

df1 = pd.DataFrame(df1)
index_data = ['Material Code', 'Material Desc', 'Vendor', 'Currency']
column_data = 'Months'
values_data = df1.columns.difference(index_data + [column_data])
months = dict(zip(['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG',
'SEP', 'OCT', 'NOV', 'DEC'], range(12)))
pf = pd.pivot_table(data=df1, index=index_data, columns=column_data,
values=values_data, fill_value=0,
aggfunc={"GRN Quantity":np.sum, "Purchase Price":np.sum}) 
.swaplevel(axis=1).sort_index(level=0, axis=1, key=lambda x: [months[i] for i in x]).reset_index()

输出:

>>> pf
Months Material Code Material Desc    Vendor Currency          JAN                         FEB                         MAR                         APR               
GRN Quantity Purchase Price GRN Quantity Purchase Price GRN Quantity Purchase Price GRN Quantity Purchase Price
0                  A           ABC  Vendor_1      INR          100             10            0              0            0              0            0              0
1                  B           XYZ  Vendor_2      INR            0              0          200             15            0              0            0              0
2                  C           QWE  Vendor_3      INR            0              0            0              0          500             20            0              0
3                  D           ERT  Vendor_4      INR          400             45            0              0            0              0            0              0
4                  E           MNH  Vendor_5      USD            0              0          100             45            0              0            0              0
5                  F           LKJ  Vendor_6      USD          100             12            0              0            0              0            0              0
6                  G           HGF  Vendor_7      USD            0              0            0              0            0              0          500             15

最新更新