如果某些行部分满足某些条件,如何从数据框中删除它们

How to drop certain rows from dataframe if they partially meet certain condition

如果行 'partially' 满足特定条件,我将尝试从数据框中删除这些行。

'partially' 我的意思是单元格中的一些(不是全部)值满足条件。

假设我有这个数据框。

>>> df    
    Title                                  Body
0   Monday report: Stock market            You should consider buying this.
1   Tuesday report: Equity                 XX happened. 
2   Corrections and clarifications         I'm sorry.
3   Today's top news                       Yes, it skyrocketed as I predicted.

如果标题有“星期一报告:”或“星期二报告:”,我想删除整行。

需要注意的一点是我使用了

TITLE = []
.... several lines of codes to crawl the titles.
TITLE.append(headline)

抓取并将它们存储到数据框中。

另一件事是我的数据是元组,因为我使用了

df = pd.DataFrame(list(zip(TITLE, BODY)), columns =['Title', 'Body'])

制作数据框。

我想这就是我使用时的原因,

df.query("'Title'.str.contains('Monday report:')")

我收到一个错误。

当我在 Whosebug 中进行谷歌搜索时,有人建议将元组转换为 multi-index 并使用 filter()drop()isin().

None 他们成功了。

或者我用错了它们...?

有解决这个问题的想法吗?

您可以对条件进行基本筛选,然后使用 ~:

选择反向筛选

例如: df[~df['Title'].str.contains('Monday report')] 将为您提供排除标题中包含 'Monday report' 的所有行的输出。