首页 > 解决方案 > 如果数据以特定字符开头,则删除 pandas 数据框中的一行

问题描述

我有一个数据框,其中包含从 txt 文件中读取的一些文本,列名是FEATURESENTENCES。在FEATUREcol 中有一些以 开头的文本'[NA]',例如'[NA] not a feature'

如何从我的数据框中删除这些行?

到目前为止,我已经尝试过:

df[~df.FEATURE.str.contains("[NA]")]

但这什么也没做,也没有错误。

我也试过:

df.drop(df['FEATURE'].str.startswith('[NA]'))

同样,没有错误,但这不起作用。

标签: pythonpandasdataframe

解决方案


IIUCregex=False用于不解析字符串,如正则表达式:

df[~df.FEATURE.str.contains("[NA]", regex=False)]

或转义特殊的正则表达式字符[]

df[~df.FEATURE.str.contains("\[NA\]")]

另一个问题应该是尾随空格,然后使用:

df[~df['FEATURE'].str.strip().str.startswith('[NA]')]

推荐阅读