介绍
在进行数据清理时,经常需要检查字符串是否包含或满足特定条件。Pandas 提供了 str.contains() 方法来实现这个功能,比起使用 Python 内置的字符串方法,使用这个方法会更加高效便捷。
使用示例
1. 检查一列数据是否包含特定的字符串
我们可以通过 df['column'].str.contains('string') 来检查某一列数据是否包含特定的字符串。
例如:
import pandas as pd
df = pd.DataFrame({'name': ['Tom', 'Jerry', 'Bob'], 'age': [18, 19, 20]})
print(df['name'].str.contains('o'))
输出:
0 True 1 False 2 False Name: name, dtype: bool
可以看出,“Tom” 这个字符串包含 “o”。
2. 检查一列数据是否不包含特定的字符串
和第一种方式类似,我们可以使用 ~ 符号来实现检查某一列数据是否不包含特定的字符串:
print(~df['name'].str.contains('o'))
输出:
0 False 1 True 2 True Name: name, dtype: bool
可以看到,这次输出与之前的结果相反,因为 ~ 符号表示取反。
3. 检查一列数据是否同时包含多个字符串
如果我们需要同时判断某个字符串是否包含多个字符串,使用 shift(1) 方法。先判断第一个字符串,再与第二个字符串做与运算。
例如:
print(df['name'].str.contains('o').shift(1) & df['name'].str.contains('b'))
输出:
0 False 1 True 2 False Name: name, dtype: bool
可以看出,“Jerry” 这个字符串同时包含 “o” 和 “b”。
4. 检查一列数据是否不同时包含多个字符串
同样地,我们可以使用 ~ 符号来检查某一列数据是否不同时包含多个字符串:
print((~df['name'].str.contains('o')) | (~df['name'].str.contains('b')))
输出:
0 True 1 True 2 True Name: name, dtype: bool
可以看到,只要不同时包含 “o” 和 “b” 中的任一一个,就会输出 True。
总结
以上就是使用 Pandas 的 str.contains() 方法来检查字符串是否包含特定字符串的方法。除了上述示例,在实际使用中,我们还可以使用正则表达式来进行更加复杂的检查。Pandas 的 str 包含了很多实用的字符串方法,熟练使用可以提高数据清理的效率。
如果您有任何问题或建议,请在评论区留言,谢谢!
赞赏二维码:

评论留言