我有一个(使用pivot_table制作)的MultiIndex数据框,看起来像
col1 col2 col3
item 1 a 0 0 0
b 1 1 1
item 2 a 0 0 0
c 1 2 3
前两列是索引。我想迭代每一行并获得子表格,即'项目1'
col1 col2 col3
a 0 0 0
b 1 1 1
并可能再分为
col1 col2 col3
a 0 0 0
这些值最初会转换为GUI中的卡片
我尝试过各种改变索引,iterrows,xs的组合,但我似乎总是只能使用(index1,index2),如(item 1,a,0,0,0)我想将它们分开,如(第1项,{a:[0,0,0],b:[0,0,0]})
答案 0 :(得分:2)
使用
In [4482]: for i, g in df.groupby(level=0):
...: print g.loc[i]
...:
col1 col2 col3
a 0 0 0
b 1 1 1
col1 col2 col3
a 0 0 0
c 1 2 3
再多一个级别
In [4488]: for i, g in df.groupby(level=0):
...: print '--------Parent--------', i
...: print g.loc[i]
...: for ii, gg in g.loc[i].groupby(level=0):
...: print '----------child--------', ii
...: print gg
...:
--------Parent-------- item 1
col1 col2 col3
a 0 0 0
b 1 1 1
----------child-------- a
col1 col2 col3
a 0 0 0
----------child-------- b
col1 col2 col3
b 1 1 1
--------Parent-------- item 2
col1 col2 col3
a 0 0 0
c 1 2 3
----------child-------- a
col1 col2 col3
a 0 0 0
----------child-------- c
col1 col2 col3
c 1 2 3