用pandas将两个dataframe的房屋坐落进行模糊匹配
时间: 2024-05-05 18:21:37 浏览: 98
要将两个DataFrame的房屋坐落进行模糊匹配,可以使用Python中的fuzzywuzzy库。以下是一个示例代码:
```python
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
import pandas as pd
# 创建两个DataFrame
df1 = pd.DataFrame({'Address': ['123 Main St', '456 Park Ave', '789 Washington Blvd']})
df2 = pd.DataFrame({'Address': ['123 Main Street', '123 Main', '789 Washington Boulevard']})
# 定义一个模糊匹配函数
def fuzzy_match(x, choices):
return process.extractOne(x, choices, scorer=fuzz.token_sort_ratio)
# 在df2中查找与df1中每个地址最相似的地址
df1['Matched Address'] = df1['Address'].apply(lambda x: fuzzy_match(x, df2['Address'])[0])
# 将匹配结果合并到原始的df1和df2中
df1 = pd.merge(df1, df2, how='left', left_on='Matched Address', right_on='Address', suffixes=('', '_match'))
# 删除不必要的列
df1.drop(['Address_match'], axis=1, inplace=True)
```
这段代码将在`df2`中查找与`df1`中每个地址最相似的地址,并将匹配结果合并到原始的`df1`和`df2`中。最后,删除不必要的列。
阅读全文