下面的数据框是一个带有分层列(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?
答案 0 :(得分:2)
您可以将boolean indexing
与Index.get_level_values
创建的boolean mask
与contains
一起使用,最后将其翻转为~
:
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