Python读取Excel数据并合并:动态获取字段名称,解决字段不一致问题
在代码中,我们假设第一行是标题行,但实际上不是所有的Excel文件都是这样的。我们需要适应不同Excel文件的情况。
以下是修正后的代码,可以动态获取每个表格的字段名称:
import json
import pandas as pd
from openpyxl import load_workbook
# 定义文件路径
file_paths = ['首次病程记录.xlsx', '出院记录.xlsx', '日常病程记录.xlsx']
# 创建一个空的DataFrame用于存储所有数据
merged_data = pd.DataFrame()
# 遍历每个文件路径
for file_path in file_paths:
# 加载Excel文件
wb = load_workbook(filename=file_path)
# 获取第一个工作表
sheet = wb.active
# 获取字段名称
field_names = [cell.value for cell in sheet[1]]
# 将工作表数据加载到DataFrame中
data = pd.DataFrame(sheet.values, columns=field_names)
# 将数据合并到总的DataFrame中
merged_data = merged_data.merge(data, on='就诊流水号', how='outer')
# 选择需要输出的字段
selected_fields = ['就诊流水号', '性别', '入院诊断']
# 选择需要的列
output_data = merged_data[selected_fields]
# 输出为CSV文件
output_data.to_csv('output.csv', index=False)
print("CSV文件输出成功!")
# 输出为JSON文件
output_data_json = output_data.to_json(orient='records')
with open('output.json', 'w') as f:
f.write(output_data_json)
print("JSON文件输出成功!")
通过上述代码,我们动态获取每个表格的字段名称,并在代码中指定了要连接的主键字段为'就诊流水号'。这样,无论Excel表格中的字段名称如何,都能正确进行关联和输出。
非常抱歉给你带来的困惑,希望这次的修改能够帮助你成功运行代码。如果你还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/b1X1 著作权归作者所有。请勿转载和采集!