删除数据表中的特定值和后续行

2024-04-23 13:51:44 发布

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

我想在pandasdfdelete特定的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

Tags: importdataframepandasdffooasbarcode
2条回答

^{}~运算符(逻辑)和|运算符(逻辑)一起使用:

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

相关问题 更多 >