【发布时间】:2017-11-25 17:05:02
【问题描述】:
我有以下代码,其目的是对从 Oracle 数据库检索到的 SQL 表进行透视:
s = "SELECT Country || '_' || Product || '_' || Flow Ref, " + \
"Country, Product, Flow, zm, Qty " + \
"FROM Volumes "
#Following will simply pull from db into a dataframe
df = fb.QueryDB(s)
#Put ZM as column headers
df = df.pivot(values = 'QTY', index = 'REF', columns = 'ZM')
#Format the column headers
df.columns = [x.strftime('%b-%Y') for x in df.columns]
一切都很好,我得到一个数据框,例如:
Mar-2017 Apr-2017
Ref
A_B_C 100 110
D_E_F 500 210
G_H_I 310 150
除了现在我想创建一个多索引,如下:
Mar-2017 Apr-2017
Ref Country Product Flow
A_B_C A B C 100 110
D_E_F D E F 500 210
G_H_I G H I 310 150
为此,我编辑了将数据框旋转到的行:
df = df.pivot(values = 'QTY', index = ['REF','COUNTRY','PRODUCT','FLOW'], columns = 'ZM')
这会产生以下错误
ValueError: 传递的项目数错误 1859796,位置暗示 4
非常感谢您的帮助。
【问题讨论】:
标签: python pandas dataframe pivot