使用pandas和openpyxl在工作簿的2个Excel工作表中匹配值

我的xlsx文件中有2张纸。该文件存储在本地。当我打印行和列时,我得到输出。我想要的是,如果“患者信息”工作表的第一列(患者ID)中的任何值与“记录”工作表的第一列(p id)中的任何值匹配,那么我想从“记录”工作表中附加该单元格值到列表c并打印所有匹配值的列表。但是,当我运行我的代码时,不会生成任何输出,甚至在运行时也不会显示任何错误或警告。请找到所附的数据集。患者数据集

import openpyxl
import pandas as pd

filename="week_05_homework_XLSX_openpyxl.xlsx"
wb= openpyxl.load_workbook(filename)
sheet1=wb['patient info']
sheet2=wb['records']
df1= pd.DataFrame(sheet1.values)
df2= pd.DataFrame(sheet2.values)
p=len(df1.index)
q=len(df2.index)
c =[]
for i in range(2,p):
    for j in range(2,q):
        if df1.iloc[i,1]==df2.iloc[j,1]:
            c.append((df2.iloc[j,1]))
            print(c)
鹰射95

如果您试图仅从两个数据帧中获取公共ID,则仅使用交集操作查找公共ID可能会更快,更清洁。这个答案可能会有所帮助:

如果没有,您可以始终打印它们,然后打印公共ID作为结尾。

一种方法是将ID设置为索引,然后:

common_ids = df1.index.intersection(df2.index)
c = records.iloc[common_ids,:]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用openpyxl将工作表从excel文件移动到一个工作簿中

使用Openpyxl和现有工作簿的Pandas Excel Writer

如何使用OpenPyXl清除Excel工作簿中的值范围

如何使用openpyxl在工作簿中对Excel工作表/标签进行排序

在两个Excel工作表中搜索和查找值(xlrd到openpyxl)

如何将一个文件夹中的多个 Excel 工作簿中除工作表 1 和工作表 2 之外的所有工作表复制到另一个工作簿中

如何使用openpyxl / pandas或任何python将从多个excel工作表中提取的字符串数据保存到新工作簿中?

如何使用openpyxl仅解析工作簿中的特定工作表-或如何忽略空工作表?

使用 Django 工作簿和工作表创建 Excel 文件

打开一个封闭的工作簿,在一列中查找匹配的excel值,向左偏移2列,然后将值复制回打开的excel工作表

比较 excel vba 中缺失工作表的 2 个工作簿

Excel以匹配两个工作表中的值

将值从各种工作簿和工作表复制到其他工作簿中

比较和匹配2列,并将匹配项的值从工作簿1的下一列复制到工作簿2中的空列以匹配项目

复制工作簿中的列,粘贴到第二个工作簿的第二张表openPyXL中

Excel VBA 宏脚本,用于将模板工作簿中的工作表中的格式和值复制到新的附件工作簿中

使用VBA匹配excel中两个不同工作表的两列的值

我正在尝试使用循环将主工作簿中的一个 Excel 工作表中的数据粘贴到最多 30 个其他工作簿中

从同一Excel工作簿中的另一个工作表中检索单元格值

使用值匹配的vba从另一个工作簿中获取价值?

使用宏将3个以上的Excel工作表合并到一个工作簿中

不使用 Openpyxl 将索引表添加到 Excel 工作簿?

如何在一个工作簿中复制工作表并将值仅粘贴到新工作簿中?

使用 ADODB 在 Excel 工作簿中插入特定表

excel vlookup 多个值和工作簿

如果值匹配,则循环遍历 A 列的工作表 1 和工作表 2 删除工作表 1 中的整行

Openpyxl-将数据从Excel工作簿追加到另一个工作簿

当工作簿1中的单元格值与工作簿2中的列值匹配时,将值从工作簿2复制到工作簿1(主工作簿)

循环遍历 A 列并复制不同工作簿上匹配工作表中的值