Python 在数据透视表中设置多级索引
我有一个如下所示的数据帧: 并且可以查看和下载 我正在尝试透视这个数据框架,以便“DISTRICT”是索引的第一级,“BLANK”、“CON”、“DEM”、“GRE”、“IND”、“OTH”、“REF”、“REP”、“WEP”、“WOR”列是多级索引的第二级。然后我想将“STATUS”列设置为水平列“Active”和“Inactive”。我编写了以下代码:Python 在数据透视表中设置多级索引,python,pandas,pivot,Python,Pandas,Pivot,我有一个如下所示的数据帧: 并且可以查看和下载 我正在尝试透视这个数据框架,以便“DISTRICT”是索引的第一级,“BLANK”、“CON”、“DEM”、“GRE”、“IND”、“OTH”、“REF”、“REP”、“WEP”、“WOR”列是多级索引的第二级。然后我想将“STATUS”列设置为水平列“Active”和“Inactive”。我编写了以下代码: active_inactive8.pivot(index=['DISTRICT', 'DEM', 'REP', 'CON', 'GRE',
active_inactive8.pivot(index=['DISTRICT', 'DEM', 'REP', 'CON', 'GRE',
'WOR', 'IND', 'WEP', 'REF', 'OTH', 'BLANK'],
columns='STATUS')
但是得到错误:ValueError:所有数组的长度必须相同
我也尝试过。融化但没有成功。我相信需要,但需要必要的转置,最后:
如果您以一种易于复制的形式提供,那么就更容易了。请编辑我的问题,通过GitHub提供数据帧。这两个选项都有效-非常感谢。将在.swaplevel()上阅读
df = pd.read_csv('active_inactive8.csv', index_col=0)
df2 = df.set_index(['STATUS','DISTRICT']).unstack().T.swaplevel(1,0).sort_index()
df2 = df.pivot(index='STATUS', columns='DISTRICT').T.swaplevel(1,0).sort_index()
print (df2.head(10))
STATUS Active Inactive
DISTRICT
1 BLANK 128547.0 8436.0
CON 11778.0 643.0
DEM 144470.0 10086.0
GRE 1108.0 96.0
IND 23245.0 1545.0
OTH 394.0 28.0
REF 41.0 3.0
REP 162308.0 8290.0
WEP 150.0 5.0
WOR 2066.0 130.0