Pandas数据帧根据索引和列值删除行

时间:2015-12-07 22:41:09

标签: python pandas dataframe multi-index

我有一个多索引数据框,名为df,我想删除所有带符号的行(多级索引的第二级)='tb_91day_tri'和权重(列)= 0.我知道删除行很容易按索引和按行值排列,但我无法弄清楚如何将两者结合起来。

                                             weight
asofdate   symbol                                  
2015-11-02 universe_tri                      0.000000
           tb_91day_tri                      0.053984
           tri_us78463x749                   0.051751
           tri_ca46431a109                   0.018860
           tri_ca46430l106                   0.067672
           tri_ca46430j101                   0.197639
           tri_ca46428l100                   0.151681
           tri_ca46428j105                   0.108409
           tse_300_bl_tri                    0.000000
           tb_91day_tri                      0.000000
           sp_500_tri                        0.000000


df.drop(df.xs('tb_91day_tri',level=1)[df.xs('tb_91day_tri',level=1)['weight']==0]) #doesn't work

1 个答案:

答案 0 :(得分:1)

你可以:

selection = df[df.weight!=0].drop('tb_91day_tri', level=1)