我正在尝试在包含“ ???”的熊猫中删除行,它适用于除“ ???”以外的所有其他值,我不知道出了什么问题。
这是我的代码(我尝试过两种类型):
df = df[~df["text"].str.contains("?????", na=False)]
df = df[~df["text"].str.contains("?????")]
我遇到的错误:
re.error: nothing to repeat at position 0
它适用于除“ ????”以外的所有其他值。 我已经用谷歌搜索了它,并浏览了整个网站,但是找不到任何解决方案。
答案 0 :(得分:1)
参数需要一个正则表达式,因此错误为re.error
。
您可以逃脱吗?在这样的表达式中:
df = df[~df["text"].str.contains("\?\?\?\?\?")]
或将regex=False
设置为Vorsprung顺位:
df = df[~df["text"].str.contains("?????",regex=False)]
答案 1 :(得分:0)
将其转换为运行代码:
import numpy as np
import pandas as pd
data = {'A': ['abc', 'cxx???xx', '???',], 'B': ['add', 'ddb', 'c', ]}
df = pd.DataFrame.from_dict(data)
df
输出:
A B
0 abc add
1 cxx???xx ddb
2 ??? c
与此:
df[df['A'].str.contains('???',regex=False)]
输出:
A B
1 cxx???xx ddb
2 ??? c
您需要告诉contains()
,您的搜索字符串不是正则表达式。