首页 > 解决方案 > 删除熊猫df中的特定值和后续行

问题描述

我想delete具体rows在一个pandas df. 我想删除row基于不需要的值加上后续的row. 对于以下内容df,我想删除rowwhereCode == 'Cat'加上后续的row. 下面是我的尝试。

import pandas as pd

将熊猫导入为 pd

d = ({
    'Code' : ['Foo','Bar','Cat','Foo','Foo'],
    'Int' : ['x','y','a','a','x'],
    })

df = pd.DataFrame(d)


df = df[df.Code.shift()!='Cat']

  Code Int
0  Foo   x
1  Bar   y
2  Cat   a
4  Foo   x

预期输出:

  Code Val
0  Foo   x
1  Bar   y
2  Foo   x

标签: pythonpandas

解决方案


boolean indexing~运算符(逻辑NOT)和|运算符(逻辑OR )一起使用:

df[~(df.Code.eq('Cat') | df.Code.shift(1).eq('Cat'))]

  Code Int
0  Foo   x
1  Bar   y
4  Foo   x

推荐阅读