Pandas中基于多索引条件/字符的删除行

2024-06-16 11:48:53 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的数据帧是一个具有分层列(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?在


Tags: 数据alphaiddftime分层betadelta
1条回答
网友
1楼 · 发布于 2024-06-16 11:48:53

您可以使用^{}和{a2}创建的{a1}与{a3}一起使用,最后由{}反转:

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

相关问题 更多 >