我正在尝试过滤掉包含子字符串'**'
的DataFrame中的所有行。
我试过用
做这件事df = df[~df['title'].str.contains('**')]
但是我一直收到错误
错误:在0位没有重复
并且无法弄清楚原因。
答案 0 :(得分:3)
默认情况下,str.contains
使用re.search
,{{3}}将*
视为特殊字符(匹配0个或更多字符)。您希望与contains('**', regex=False)
通话以避免使用re.search
- 而是使用Python in
运算符。
答案 1 :(得分:3)
您必须使用*
转义\
字符,因为它被视为特殊正则表达式字符*
(表示零或更多)。在你的情况下:
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*