繁体   English   中英

删除特定值和熊猫df中的后续行

[英]Delete specific value and subsequent row in a pandas df

我想delete pandas df特定rows 我想删除一个row基于在不恰当的值加上后续row 对于下面的df我想删除的row那里Code == '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

boolean indexing~运算符(逻辑NOT )和| 运算符(逻辑 ):

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

  Code Int
0  Foo   x
1  Bar   y
4  Foo   x

另一种方式:

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

现在:

print(df)

方法是:

  Code Val
0  Foo   x
1  Bar   y
4  Foo   x

暂无
暂无

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

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