如果熊猫中包含“ ???”的行,将其删除

时间:2020-04-04 20:11:35

标签: python pandas

我正在尝试在包含“ ???”的熊猫中删除行,它适用于除“ ???”以外的所有其他值,我不知道出了什么问题。

这是我的代码(我尝试过两种类型):

df = df[~df["text"].str.contains("?????", na=False)]
df = df[~df["text"].str.contains("?????")]

我遇到的错误:

re.error: nothing to repeat at position 0

它适用于除“ ????”以外的所有其他值。 我已经用谷歌搜索了它,并浏览了整个网站,但是找不到任何解决方案。

2 个答案:

答案 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(),您的搜索字符串不是正则表达式。