读取两个excel表格,选择两个表格中列名均为doc_id的两列,逐行匹配两列数据相同的所有行写入新表格中
时间: 2024-05-12 08:18:29 浏览: 16
你可以使用Python中的pandas模块来读取和操作Excel表格。具体步骤如下:
1. 导入pandas模块。
```
import pandas as pd
```
2. 使用pandas的read_excel函数读取两个Excel表格,并选中doc_id列。
```
df1 = pd.read_excel('表格1.xlsx', usecols=['doc_id'])
df2 = pd.read_excel('表格2.xlsx', usecols=['doc_id'])
```
3. 使用pandas的merge函数根据doc_id列进行匹配,并将匹配结果写入新表格。
```
merged_df = pd.merge(df1, df2, on='doc_id')
merged_df.to_excel('新表格.xlsx', index=False)
```
注意要将新表格的索引设置为False,防止生成无用的索引列。
相关问题
读取两个excel表格,选择两个表格中列名均为doc_id的两列,逐行匹配两列数据相同的所有行写入新文件
你可以使用Python中的pandas模块来读取excel表格并进行数据操作。具体步骤如下:
1. 导入pandas模块: import pandas as pd
2. 读取两个excel表格: df1 = pd.read_excel('表格1路径') df2 = pd.read_excel('表格2路径')
3. 选择两个表格中列名均为doc_id的两列: doc_id1 = df1['doc_id'] doc_id2 = df2['doc_id']
4. 将两列数据相同的所有行写入新文件: df_new = pd.merge(df1, df2, on='doc_id', how='inner') df_new.to_excel('新表格路径', index=False)
注意事项:
1. 读取excel表格需要安装openpyxl模块
2. 建议在程序中加入异常处理以避免异常情况的出现
openpyxl 模块来读取两个Excel表格,选择两个表格中列名均为doc_id的两列,逐行匹配两列数据相同的所有行写入新表格中
好的,您可以使用以下代码:
```python
import openpyxl
# 读取两个Excel表格
wb1 = openpyxl.load_workbook('excel1.xlsx')
wb2 = openpyxl.load_workbook('excel2.xlsx')
# 选择两个表格中列名均为doc_id的两列
data1_col, data2_col = None, None
for sheet in wb1:
for i, col in enumerate(sheet.iter_cols(values_only=True)):
if col[0] == 'doc_id':
data1_col = sheet[f'{openpyxl.utils.cell.column_index_from_string(col[0])}']
break
for sheet in wb2:
for i, col in enumerate(sheet.iter_cols(values_only=True)):
if col[0] == 'doc_id':
data2_col = sheet[f'{openpyxl.utils.cell.column_index_from_string(col[0])}']
break
# 逐行匹配两列数据相同的所有行写入新表格中
new_wb = openpyxl.Workbook()
new_sheet = new_wb.active
new_sheet.append(data1_col[0])
for i in range(1, data1_col.__len__()):
data1 = data1_col[i].value
for data2_col_cell in data2_col:
if data2_col_cell.value == data1:
new_sheet.append(sheet[i])
# 保存新表格
new_wb.save('new_excel.xlsx')
```
希望可以帮助到您。