python读取2个excel表格,对2个表格当中相同的2列进行比对,保留相同数据,替换不同数据并保存表1
时间: 2023-12-10 22:38:35 浏览: 89
可以使用 pandas 库来读取、比对和保存 Excel 表格。以下是一个示例代码:
```python
import pandas as pd
# 读取第一个表格
df1 = pd.read_excel('表格1.xlsx')
# 读取第二个表格
df2 = pd.read_excel('表格2.xlsx')
# 指定要比对的列
compare_cols = ['列1', '列2']
# 使用 merge 方法将两个表格按照指定列进行比对
merged_df = pd.merge(df1, df2, on=compare_cols, how='inner')
# 用第二个表格中的数据替换第一个表格中不同的数据
merged_df.update(df1)
# 保存修改后的表格1
merged_df.to_excel('修改后的表格1.xlsx', index=False)
```
在上面的代码中,我们首先使用 `pd.read_excel` 函数读取了两个 Excel 表格,然后指定了要比对的列。接着,使用 `pd.merge` 函数将两个表格按照指定列进行比对,得到了一个新的 DataFrame 对象 `merged_df`。最后,使用 `update` 方法将 `merged_df` 中的数据替换掉原来的表格1中的数据,最后将修改后的表格1保存到本地。
相关问题
python读取2个excel表格,对2个表格当中相同的2列进行比对,其中2列数据需要一一对应,保留相同数据,替换不同数据并保存表1
你可以使用 pandas 库来读取和处理 Excel 表格。以下是一个基本的代码示例,假设要比较的两个 Excel 表格分别为 `table1.xlsx` 和 `table2.xlsx`,并且要比较的两列分别为 `col1` 和 `col2`:
```python
import pandas as pd
# 读取表格1和表格2
df1 = pd.read_excel('table1.xlsx')
df2 = pd.read_excel('table2.xlsx')
# 根据col1和col2两列进行合并,只保留相同的数据
merged_df = pd.merge(df1, df2, on=['col1', 'col2'], how='inner')
# 将表格1中不同的数据替换为表格2中的数据
for index, row in merged_df.iterrows():
df1.loc[(df1['col1'] == row['col1']) & (df1['col2'] == row['col2']), ['col3', 'col4']] = [row['col3'], row['col4']]
# 保存表格1
df1.to_excel('table1.xlsx', index=False)
```
需要说明的是,上述代码只能处理两个表格中相同的数据,并不能处理两个表格中存在于一张表格而不存在于另一张表格的数据。如果需要处理这种情况,需要根据具体情况进行修改。
python读取2个excel表格,表1指定列1、列2和表2的列1、列2对应进行比对,表1和表2列名相同,对比的4列不同数据替换表1原数据,相同则不变
可以使用 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 表格中。
阅读全文