根据Pandas中的多索引条件/字符删除行

时间:2017-08-13 18:33:25

标签: python database pandas hierarchical-data multi-index

下面的数据框是一个带有分层列(df)的多索引数据框:

                   EMG                                     Biofeedback    
Time     ID  
                   delta theta alpha beta high beta gamma  HeartRateVariabilty GSR     
20170101 PD102       4     5     8    3         0     9                1        2 
20170102 PD102       5     7     8    4         6     5                2        3       
20170101 SS104-1     3     4     4    5         2     4                8        2
20170101 SS104       3     4     3    4         2     4                8        2

如何删除包含' - '的所有行?索引中的(短划线),即下降SS104-1?

1 个答案:

答案 0 :(得分:2)

您可以将boolean indexingIndex.get_level_values创建的boolean maskcontains一起使用,最后将其翻转为~

print (~df.index.get_level_values('ID').str.contains('-'))
[ True  True False  True]

df1 = df[~df.index.get_level_values('ID').str.contains('-')]
print (df1)
                 EMG                                          Biofeedback    
               delta theta alpha beta high beta gamma HeartRateVariabilty GSR
Time     ID                                                                  
20170101 PD102     4     5     8    3         0     9                   1   2
20170102 PD102     5     7     8    4         6     5                   2   3
20170101 SS104     3     4     3    4         2     4                   8   2