根据“如果单元格中的字符串”条件删除熊猫列中的行

Posted

技术标签:

【中文标题】根据“如果单元格中的字符串”条件删除熊猫列中的行【英文标题】:remove row in pandas column based on "if string in cell" condition 【发布时间】:2020-08-29 22:39:21 【问题描述】:

我有一个包含一些列的数据框,其中之一是 Text,其中包含一些文本 (obv)。

此列的几个单元格中有“无文本”,但我注意到(我不知道为什么)有一些空格:例如在某些行中我有 "no text" 在其他行中 " no text"" no text "" no text " 等等。

我想使用这样的条件来删除其列Text 丢失的行:

data = data.drop(data['no text' in data['Text']].index)

但给了我一些错误 (KeyError: '[False] not found in axis') 我知道对于这样的事情,必须通过一个布尔条件 df = df.drop(df[boolean_cond]) 那么我做错了什么?

【问题讨论】:

或许可以对列应用str.strip(),如here所示 【参考方案1】:

Series.str.contains

如果您想删除包含字符串为no text 的行,那么您可以这样做:

data = data[~(data['Text'].str.contains("no text"))]

【讨论】:

以上是关于根据“如果单元格中的字符串”条件删除熊猫列中的行的主要内容,如果未能解决你的问题,请参考以下文章

如何根据条件表达式从熊猫数据框中删除行[重复]

如何使用熊猫从另一个数据框 B 的列中删除包含特定数量值的数据框 A 中的行?

根据熊猫中多列的条件(最大值)替换列中的值

如何根据另一列中的单元格值有条件地填充熊猫列

根据条件从 r 中的多列中删除重复的行

根据某个(非零)值删除数据帧(熊猫)中的行[重复]