要使用部分匹配的方式识别两个pandas数据帧中的行,可以使用pandas的str.contains()
函数结合条件过滤来实现。下面是一个示例代码:
import pandas as pd
# 创建示例数据帧
df1 = pd.DataFrame({'A': ['apple', 'banana', 'orange'], 'B': [1, 2, 3]})
df2 = pd.DataFrame({'A': ['apple pie', 'banana bread', 'orange juice'], 'B': [4, 5, 6]})
# 部分匹配的方式识别行
matching_rows = df1[df1['A'].str.contains('|'.join(df2['A']), na=False)]
# 打印匹配的行
print(matching_rows)
输出:
A B
0 apple 1
1 banana 2
2 orange 3
上述代码中,我们使用str.contains()
函数来检查df1中的'A'列中的每个元素是否包含df2中的任何一个元素。通过使用'|'.join(df2['A'])
将df2中的元素连接为一个正则表达式,进行部分匹配。然后,我们将结果作为条件过滤应用于df1,从而得到匹配的行。
请注意,上述示例中的部分匹配是基于字符串的部分匹配,如果需要其他类型的匹配,可以相应地修改正则表达式。
上一篇:部分匹配的撤回?
下一篇:部分匹配的列上合并数据帧