Pandas:检查字符串是否包含多个子字符串


您可以使用以下方法来检查 pandas DataFrame 中的字符串是否包含多个子字符串:

方法一:检查字符串是否包含多个子字符串之一

 df[' string_column ']. str . contains (' | ' .join ([' string1 ',' string2 ']))

方法二:检查字符串是否包含多个子字符串

 df[' string_column ']. str . contains ( r'^(?=.*string1)(?=.*string2)' )

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Good East Team', 'Good West Team', 'Great East Team',
                             'Great West Team', 'Bad East Team', 'Bad West Team'],
                   ' points ': [93, 99, 105, 110, 85, 88]})

#view DataFrame
print (df)

              team points
0 Good East Team 93
1 Good West Team 99
2 Great East Team 105
3 Great West Team 110
4 Bad East Team 85
5 Bad West Team 88

示例1:检查字符串是否包含多个子字符串之一

我们可以使用以下语法来检查team列中的每个字符串是否包含“Good”“Is”子字符串:

 #create new column that checks if each team name contains 'Good' or 'East'
df[' good_or_east '] = df[' team ']. str . contains (' | ' .join ([' Good ',' East ']))

#view updated DataFrame
print (df)

              team points good_or_east
0 Good East Team 93 True
1 Good West Team 99 True
2 Great East Team 105 True
3 Great West Team 110 False
4 Bad East Team 85 True
5 Bad West Team 88 False

新的good_or_east列返回以下值:

  • 如果团队包含“Good”或“Is”,则为真
  • 如果团队既不包含“Good”也不包含“Is”,则为 False

|运算符在 pandas 中的意思是“或”。

示例 2 检查字符串是否包含多个子字符串

我们可以使用以下语法来检查team列中的每个字符串是否包含子字符串“Good”“Is”:

 #create new column that checks if each team name contains 'Good' and 'East'
df[' good_and_east '] = df[' team ']. str . contains ( r'^(?=.*Good)(?=.*East)' )

#view updated DataFrame
print (df)

              team points good_and_east
0 Good East Team 93 True
1 Good West Team 99 False
2 Great East Team 105 False
3 Great West Team 110 False
4 Bad East Team 85 False
5 Bad West Team 88 False

新列good_and_east返回以下值:

  • 如果团队包含“Good”和“Is”,则为真
  • 如果团队不包含“Good”和“Is”,则为 False

请注意,由于只有一个包含“Good”子字符串“East”子字符串的球队名称,因此仅返回一个True值。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

Pandas:将一列从一个 DataFrame 添加到另一个 DataFrame
Pandas:获取不在另一个 DataFrame 中的行
Pandas:如何检查多列是否相等

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注