Python读取一个excel中给出的两列文字,然后筛选出另一个excel中对应的两列包含这部分文字的表格
时间: 2025-04-07 13:08:54 浏览: 31
### 使用 Pandas 和 Openpyxl 处理 Excel 文件并实现多列文字匹配
为了完成这一任务,Pandas 是更合适的选择,因为它支持从多种数据源(如内存中的字节流)读取 Excel 数据[^1]。以下是具体的解决方案:
#### 方法概述
可以通过 `pandas` 的功能加载两个 Excel 表格的数据到 DataFrame 中,并利用布尔索引来筛选满足条件的行。对于部分匹配操作,可以使用字符串方法 `.str.contains()`。
#### 实现代码示例
以下是一个完整的 Python 脚本,用于演示如何基于两列的部分匹配来筛选数据:
```python
import pandas as pd
# 假设我们有两个 Excel 文件路径分别为 file1.xlsx 和 file2.xlsx
file1_path = 'file1.xlsx'
file2_path = 'file2.xlsx'
# 加载第一个 Excel 文件至 DataFrame
df_file1 = pd.read_excel(file1_path)
# 加载第二个 Excel 文件至 DataFrame
df_file2 = pd.read_excel(file2_path)
# 定义要匹配的列名
column_to_match_1 = '批次编号' # 来自 df_file1 的列
column_to_match_2 = '编号' # 来自 df_file2 的列
# 对于部分匹配,我们可以使用 str.contains() 函数
matched_rows = df_file2[df_file2[column_to_match_2].astype(str).str.contains('|'.join(df_file1[column_to_match_1].astype(str)), na=False)]
# 输出匹配结果
print(matched_rows)
```
上述脚本的核心逻辑在于:
- 将目标列转换为字符串类型以确保兼容性。
- 利用正则表达式的特性 (`|`) 构建动态模式串,从而实现批量部分匹配[^3]。
如果需要进一步扩展此程序的功能,比如加入更多约束条件或者处理复杂的关系,则可以根据具体需求调整过滤器逻辑。
#### 注意事项
当涉及大量数据时,应考虑性能优化措施;例如提前清理不必要的空白字符、标准化大小写等预处理步骤可以帮助提高效率和准确性[^2]。
---
###
阅读全文
相关推荐


















