迭代Pandas数据帧行

时间:2017-10-19 13:31:42

标签: python pandas

我有一个(使用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]})

1 个答案:

答案 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
相关问题