使用 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 数据框架列上进行模糊匹配的几种方式及示例,希望能对大家有所帮助。