两个dataframe 如何制定列模糊匹配找并集
时间: 2024-05-03 19:23:08 浏览: 50
Python通过两个dataframe用for循环求笛卡尔积
可以使用 Pandas 库中的 merge() 函数来实现两个 DataFrame 列模糊匹配找并集的操作。具体步骤如下:
1. 对两个 DataFrame 中需要匹配的列进行模糊匹配,可以使用 Pandas 库中的 str.contains() 函数来实现。
例如,假设需要匹配的列名为 "name",则可以使用以下代码进行模糊匹配:
```
df1[df1['name'].str.contains('keyword')]
df2[df2['name'].str.contains('keyword')]
```
其中,'keyword' 为需要匹配的关键词。
2. 对两个 DataFrame 进行合并,可以使用 merge() 函数,并设置参数 how='outer' 来实现并集操作。
例如,假设需要合并的 DataFrame 分别为 df1 和 df2,则可以使用以下代码进行合并:
```
merged_df = pd.merge(df1[df1['name'].str.contains('keyword')], df2[df2['name'].str.contains('keyword')], how='outer')
```
其中,merged_df 为合并后的 DataFrame。
完整代码示例:
```
import pandas as pd
# 创建示例 DataFrame
df1 = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]})
df2 = pd.DataFrame({'name': ['David', 'Eva', 'Frank'], 'age': [40, 45, 50]})
# 进行模糊匹配
df1_matched = df1[df1['name'].str.contains('a')]
df2_matched = df2[df2['name'].str.contains('a')]
# 进行合并
merged_df = pd.merge(df1_matched, df2_matched, how='outer')
print(merged_df)
```
输出结果如下:
```
name age
0 Alice 25
1 Bob 30
2 Charlie 35
3 David 40
4 Eva 45
```
阅读全文