使用python操作excel文件 数据比对
时间: 2025-06-29 21:14:57 浏览: 6
### 使用Python进行Excel文件的数据比对
为了实现两个Excel文件之间数据的比对,可以采用`pandas`库来加载并处理这些文件。此过程通常包括读取文件、清理和准备数据以便比较、执行实际的比较操作以及最后总结差异。
#### 加载必要的库
首先安装所需的包(如果尚未安装),可以通过pip命令完成:
```bash
pip install pandas openpyxl
```
接着,在脚本顶部导入所需模块:
```python
import pandas as pd
from pathlib import Path
```
#### 读取Excel文件
使用`pd.read_excel()`函数可以从指定路径读取Excel文档的内容到DataFrame对象中[^1]。
```python
file_path_1 = Path('path/to/first/excel/file.xlsx')
df1 = pd.read_excel(file_path_1)
file_path_2 = Path('path/to/second/excel/file.xlsx')
df2 = pd.read_excel(file_path_2)
```
#### 数据预处理
确保两份数据集具有相同的结构对于后续的成功比较至关重要。这可能涉及到重命名列名、调整索引或是填补缺失值等步骤。
```python
# 假设我们希望基于某些特定条件来进行对比,则先做相应的准备工作
if not df1.equals(df2): # 初步检查整个表格是否相同
# 如果不完全相等则继续深入分析具体哪些地方不同
# 清理与标准化数据格式
df1_cleaned = df1.fillna(value='').copy()
df2_cleaned = df2.fillna(value='').copy()
# 对齐行列顺序以方便逐项对比
common_columns = list(set(df1.columns).intersection(set(df2.columns)))
df1_aligned = df1_cleaned.reindex(columns=common_columns)
df2_aligned = df2_cleaned.reindex(columns=common_columns)
else:
print("Two files are identical.")
```
#### 执行数据对比
一旦完成了上述准备工作之后就可以开始真正的数据对比了。这里提供了一种简单的方法——通过合并两个DataFrame并将结果筛选出来查看那些存在差异的地方。
```python
comparison_df = df1_aligned.compare(df2_aligned, align_axis=0)
print(comparison_df)
```
这种方法会返回一个新的DataFrame,其中包含了来自原始两张表的不同之处;如果没有发现任何区别,则该新表将是空的。
另一种更灵活的方式是遍历每一行每列手动查找差异,并记录下所有的变化情况。
```python
diff_list = []
for col in common_columns:
diff_rows = (df1[col]!=df2[col]) & ~(df1[col].isnull() & df2[col].isnull())
if any(diff_rows):
diffs = {'Column':col,'Differences':list(zip(df1.loc[diff_rows,col],df2.loc[diff_rows,col]))}
diff_list.append(diffs)
if len(diff_list)>0:
for item in diff_list:
print(f"Difference found in column {item['Column']}:")
for pair in item['Differences']:
print(f"- Original value: '{pair[0]}', New Value:'{pair[1]}'")
else:
print("No differences were detected between the two datasets.")
```
以上就是利用Python中的`pandas`库来进行Excel文件间数据对比的一种基本方式[^2]。
阅读全文
相关推荐


















