删除 pandas 数据帧中包含特定字符串的行

Deleteing rows in a pandas dataframe if it contains a certain string

提问人:Attacrat 提问时间:11/27/2022 更新时间:11/27/2022 访问量:40

问:

我有一个数据帧中的列列表,该列要么包含一个哈希标记,后跟一个字符串,要么包含两个哈希标记后跟一个字符串。我想删除只包含一个井号的行。

df[df["column name"].str.contains("#") == False]

我尝试使用上面的代码,但它删除了整个列。我希望它只会删除仅包含一个哈希标记的行。我不知道该怎么办。

Python Pandas 数据过滤

评论

1赞 Swifty 11/27/2022
由于所有列都至少包含一个 “#”,因此 df[“column name”].str.contains(“#”) 将始终为 True,因此 df[“column name”].str.contains(“#”) == False 将始终为 False;因此,将跳过所有列。df[df[“column name”].str.contains(“##”)] 不起作用吗?

答:

0赞 Bushmaster 11/27/2022 #1

你能试试这个吗?

df['len']=df['column name'].str.count('#') #how many "#" expressions are in the column.

df=df[df["len"]>1]

#or one line

df=df[df['column name'].str.count('#')>1]

0赞 solac34 11/27/2022 #2

如果它们中的每一个都至少有一个“#”,并且它的 ## 或 #,

df[df["column name"].str.contains("##") == False]

上面的代码将为您提供一个 # 个。

df[df["column name"].str.contains("##") == True]

上面的代码将消除 # 并为您提供 ## 的代码。