简体   繁体   English

如何根据具有连续相同值的列事件删除数据框中的行

[英]How to delete a row in a dataframe based on a column event with consecutive same value

For example, the below is a data frame:例如,下面是一个数据框:

   Index      Name       Action
    0          result    pass
    1          result    fail
    2          result    fail
    3          result    pass
    4          result    fail
    5          result    pass
    6          result    pass
    7          result    pass

Here we are taking reference of "Action" column, consecutive 'pass' or 'fail' will result only last one of the row to be present.这里我们参考了“Action”列,连续的“通过”或“失败”将导致只有最后一行出现。

so expected output will be as below:所以预期输出如下:

   Index      Name       Action
    0          result    pass
    2          result    fail
    3          result    pass
    4          result    fail
    7          result    pass

Use Series.ne with Series.shift with -1 for mask for last rows and filter by boolean indexing :使用Series.ne with Series.shift with -1作为最后一行的掩码并通过boolean indexing过滤:

df = df[df['Action'].ne(df['Action'].shift(-1))]
print (df)
     Name Action
0  result   pass
2  result   fail
3  result   pass
4  result   fail
7  result   pass

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM