如果某些行部分满足某些条件,如何从数据框中删除它们
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' 的所有行的输出。
如果行 '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' 的所有行的输出。