比对两个excel中多个字段名的区别,并给出代码
时间: 2024-02-27 08:55:33 浏览: 115
以下是使用Python和pandas库比对两个Excel中多个字段名的区别的示例代码:
```python
import pandas as pd
# 读取两个Excel文件
df1 = pd.read_excel("file1.xlsx")
df2 = pd.read_excel("file2.xlsx")
# 定义需要比对的字段
compare_cols = [("col1", "new_col1"), ("col2", "new_col2"), ("col3", "new_col3")]
# 合并两个DataFrame
merged = pd.merge(df1[[col[0] for col in compare_cols]], df2[[col[1] for col in compare_cols]], left_on=[col[0] for col in compare_cols], right_on=[col[1] for col in compare_cols], how="outer", suffixes=("_1", "_2"))
# 判断每个字段是否存在缺失值
diff_cols = []
for col in compare_cols:
is_diff = merged[col[0] + "_1"].isna() != merged[col[1] + "_2"].isna()
if is_diff.any():
diff_cols.append(col)
# 比较两个DataFrame是否完全相同
is_same = df1[[col[0] for col in compare_cols]].equals(df2[[col[1] for col in compare_cols]])
# 输出结果
if not diff_cols and is_same:
print("两个Excel中的字段完全相同")
else:
print("两个Excel中的字段存在差异:")
if diff_cols:
print("字段缺失/重复:", [col[0] for col in diff_cols])
if not is_same:
print("字段数据不同")
```
以上代码与之前的示例代码相似,只是在比对的时候需要对多个字段进行处理。这里将需要比对的字段名作为元组存放在一个列表中,然后在合并DataFrame的时候分别使用左右两个Excel中的字段名进行对应。判断缺失值和比较数据的操作与之前的示例代码相同。
阅读全文