繁体   English   中英

如果 pandas 中包含“???”,则删除行

[英]Drop rows in pandas if they contains “???”

我试图删除 pandas 中包含“???”的行,它适用于除“???”之外的所有其他值,我不知道是什么问题。

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

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

我得到的错误:

re.error: nothing to repeat at position 0

它适用于除“????”之外的所有其他值。 我用谷歌搜索了它,并查看了这个网站,但我找不到任何解决方案。

该参数需要一个正则表达式,因此错误re.error 你能要么逃脱? 在这样的表达式中:

df = df[~df["text"].str.contains("\?\?\?\?\?")]

或者将regex=False设置为 Vorsprung 建议的:

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

让我们将其转换为运行代码:

import numpy as np
import pandas as pd

data = {'A': ['abc', 'cxx???xx', '???',], 'B': ['add', 'ddb', 'c', ]}
df = pd.DataFrame.from_dict(data)
df

output:

    A   B
0   abc add
1   cxx???xx    ddb
2   ??? c

有了这个:

df[df['A'].str.contains('???',regex=False)]

output:

    A   B
1   cxx???xx    ddb
2   ??? c

您需要告诉contains() ,您的搜索字符串不是正则表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM