返回

如何使用 Pandas 检查字符列是否包含在字符串列中?

python

使用 Pandas 检查字符列是否包含在字符串列中

问题

在 Pandas 数据框中,我们经常需要检查一个列中的字符值是否包含在另一个列的字符串值中。这在数据分析和清理任务中非常有用。本文将介绍如何使用 Pandas 的 str.contains() 方法来解决这一问题。

解决方案

导入必要的库

import pandas as pd

创建 Pandas 数据框

df = pd.DataFrame({
    'char': ['A', 'B', 'A', 'C', 'D'],
    'str': ['WCCC', 'BFC', 'GFA', 'E', None]
})

使用 str.contains() 方法

result = df['str'].str.contains(df['char'], na=False)
  • df['str']str 列。
  • str.contains(df['char']):逐行检查 str 列中的值是否包含 char 列中的值。
  • na=False:将空值 (NaN) 视为 False。

代码示例

import pandas as pd

df = pd.DataFrame({
    'char': ['A', 'B', 'A', 'C', 'D'],
    'str': ['WCCC', 'BFC', 'GFA', 'E', None]
})

result = df['str'].str.contains(df['char'], na=False)

print(result)

输出

0    False
1     True
2     True
3    False
4    False

常见问题解答

1. 什么是 str.contains() 方法?

str.contains() 方法检查字符串中是否包含指定的子字符串。

2. na 参数有什么作用?

na 参数指定如何处理空值 (NaN)。将其设置为 False 会将空值视为 False。

3. 如何检查字符串是否以特定字符开头或结尾?

可以使用 str.startswith()str.endswith() 方法来检查字符串是否以特定字符开头或结尾。

4. 如何忽略大小写?

可以使用 case=False 参数来忽略大小写。

5. 如何提取包含特定子字符串的行?

可以使用 df[result] 来提取包含特定子字符串的行。

结论

通过使用 Pandas 的 str.contains() 方法,可以轻松判断数据框中字符列是否包含在字符串列中。这对于数据分析和数据清理任务非常有用。