python读取2个excel表格,表1指定列1、列2和表2的列1、列2对应进行比对,表1和表2列名相同,对比的4列不同数据替换表1原数据,相同则不变
时间: 2023-12-06 19:45:14 浏览: 113
读数据_读取文件某一列数据(带表头)_
5星 · 资源好评率100%
可以使用 pandas 库来读取和处理 Excel 表格数据。以下是一个示例代码,可以实现你的需求。
```python
import pandas as pd
# 读取表格数据
df1 = pd.read_excel('表1.xlsx')
df2 = pd.read_excel('表2.xlsx')
# 指定比对列
cols = ['列1', '列2']
# 合并表格并根据比对列进行匹配
merged = pd.merge(df1, df2, on=cols, how='left')
# 根据匹配结果更新数据
for col in ['列3', '列4']:
merged[col] = merged[col + '_y'].fillna(merged[col + '_x'])
# 删除不需要的列
merged.drop([col + '_x' for col in cols] + [col + '_y' for col in ['列3', '列4']], axis=1, inplace=True)
# 保存结果到新表格
merged.to_excel('结果.xlsx', index=False)
```
在这个示例中,我们使用了 `pd.read_excel` 函数来读取两个 Excel 表格数据,并使用 `pd.merge` 函数将它们合并。`on=cols` 参数指定了比对列,`how='left'` 参数表示我们只保留左表(即表1)的所有行。
接下来,我们使用一个循环来遍历要更新的列,并使用 `fillna` 函数将表2的数据填充到表1中,如果表2中没有对应的数据,则保留表1中原有的数据。
最后,我们使用 `drop` 函数删除不需要的列,并使用 `to_excel` 函数将结果保存到一个新的 Excel 表格中。
阅读全文