Python 过滤掉包含'**';

Python 过滤掉包含'**';,python,pandas,dataframe,series,Python,Pandas,Dataframe,Series,我试图过滤掉数据帧中包含子字符串'**'的所有行 我已经试过和你一起做这件事了 df = df[~df['title'].str.contains('**')] 然而,我不断得到一个错误 错误:在位置0没有要重复的内容 也不知道为什么 默认情况下使用,将*视为特殊字符(匹配0个或更多字符)。您希望使用contains('**',regex=False)调用,以避免使用re.search——而是在操作符中使用Python 默认情况下使用,将*视为特殊字符(匹配0个或更多字符)。您希望使用cont

我试图过滤掉数据帧中包含子字符串
'**'
的所有行

我已经试过和你一起做这件事了

df = df[~df['title'].str.contains('**')]
然而,我不断得到一个错误

错误:在位置0没有要重复的内容


也不知道为什么

默认情况下使用,将
*
视为特殊字符(匹配0个或更多字符)。您希望使用
contains('**',regex=False)
调用,以避免使用
re.search
——而是在操作符中使用Python

默认情况下使用,将
*
视为特殊字符(匹配0个或更多字符)。您希望使用
contains('**',regex=False)
调用,以避免使用
re.search
——而是在
操作符中使用Python

必须使用
\
*
字符进行转义,因为它被读取为特殊正则字符
*
(表示零或更多)。就你而言:

df[~df['title'].str.contains('\*\*')]
示例

>>> df
   title
0    xyz
1  x**yz
2     **
3     x*

df[~df['title'].str.contains('\*\*')]

  title
0   xyz
3    x*

您必须使用
\
转义
*
字符,因为它被读取为特殊正则字符
*
(表示零或更多)。就你而言:

df[~df['title'].str.contains('\*\*')]
示例

>>> df
   title
0    xyz
1  x**yz
2     **
3     x*

df[~df['title'].str.contains('\*\*')]

  title
0   xyz
3    x*

也许错误消息可能会给您或我们一个线索?是的,错误消息通常会准确地告诉您出了什么问题,因此我们通常不会忽略它们。您的数据帧的所有行是否都有一个名为title的“列”?无论如何:请发布错误和产生该错误的数据帧的一部分。您可能需要将
regex=False
传递到
str.contains
。也许错误消息可能会给您或我们一个线索?是的,错误消息通常会准确地告诉您出了什么问题,所以我们通常不会忽略它们。数据帧的所有行是否都有一个名为title的“列”?无论如何:请发布错误和产生该错误的数据帧的一部分。您可能需要将
regex=False
传递到
str.contains
@iceokoli无需担心。如果您担心性能问题,那么值得注意的是,这种方法(不使用正则表达式)在大数据帧上的速度是我的两倍多。@iceokoli无需担心。如果性能是您的问题,那么值得注意的是,这种方法(不使用regex)在大数据帧上的速度是我的两倍多。