根据等级计数过滤Pandas MultiIndex DataFrame

时间:2018-02-15 23:33:53

标签: python pandas multi-index

我有一个MultiIndex Pandas数据框,如下所示:

col1    col2    col3
a       e       m
b       f       n
        g       o
c       h       p
        i       q
d       j       r
        k       s
        l       t

MultiIndex由col1col2组成。

如何选择col1中仅包含col2中两个索引标签的“行”?

是的,我想要:

col1    col2    col3
b       f       n
        g       o
c       h       p
        i       q

2 个答案:

答案 0 :(得分:6)

filter

分组使用
df.groupby('col1').filter(lambda x: len(x) == 2)

          col3
col1 col2     
b    f       n
     g       o
c    h       p
     i       q

答案 1 :(得分:3)

IIUC

s=df.groupby(level=0).size()

df.loc[s[s==2].index.tolist()]
Out[583]: 
          col3
col1 col2     
b    f       n
     g       o
c    h       p
     i       q