如何使用Python在Pandas数据框架列上进行模糊匹配

  • Post category:Python

使用 Python Pandas 数据框架进行模糊匹配的操作,可以使用 Pandas 的 str 属性。该属性可以对 Pandas 数据框架的列进行字符串操作。

下面,我们分别对使用 Python Pandas 数据框架时,在列上进行模糊匹配的操作进行详细说明。

1. Pandas中str.contains()方法实现模糊匹配

Pandas 中的 str.contains() 方法可以实现模糊匹配的功能。该方法用于测试每个字符串是否包含指定的子字符串。

以下是使用该方法进行模糊匹配的示例代码:

import pandas as pd

# 创建一个包含字符串的 Pandas 数据框架
df = pd.DataFrame({"Name": ["Tom", "Jenny", "John", "Tony"],
                   "Age": [20, 23, 24, 25],
                   "Address": ["New York", "London", "Paris", "Tokyo"]})

# 在 Name 列中查找包含指定字符串的行
result = df[df["Name"].str.contains("o")]

# 输出结果
print(result)

运行结果如下所示:

   Name  Age   Address
0   Tom   20  New York
2  John   24     Paris
3  Tony   25     Tokyo

2. Pandas中str.extract()方法实现模糊匹配

Pandas 中的 str.extract() 方法可以实现在字符串中查找匹配的子字符串。该方法使用正则表达式进行匹配。

以下是使用该方法进行模糊匹配的示例代码:

# 在 Name 列中提取包含指定字符串的部分字符串
result = df["Name"].str.extract("(.*o.*)")

# 将提取的字符串合并到原数据框架中
df["Matched Name"] = result

# 输出结果
print(df)

运行结果如下所示:

    Name  Age   Address Matched Name
0    Tom   20  New York          Tom
1  Jenny   23    London         None
2   John   24     Paris         John
3   Tony   25     Tokyo         Tony

3. Pandas中使用自定义函数实现模糊匹配

除了使用 Pandas 提供的方法进行模糊匹配外,还可以使用自定义函数来实现。

以下是使用自定义函数进行模糊匹配的示例代码:

# 自定义函数,用于检查字符串是否包含指定子字符串
def check_contains(string, substring):
    if substring in string:
        return True
    else:
        return False

# 调用自定义函数进行模糊匹配
result = df[df["Name"].apply(check_contains, substring="o")]

# 输出结果
print(result)

运行结果如下所示:

   Name  Age   Address
0   Tom   20  New York
2  John   24     Paris
3  Tony   25     Tokyo

以上就是在 Python Pandas 数据框架列上进行模糊匹配的几种方式及示例,希望能对大家有所帮助。