我的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)
如果您试图仅从两个数据帧中获取公共ID,则仅使用交集操作查找公共ID可能会更快,更清洁。这个答案可能会有所帮助:
如果没有,您可以始终打印它们,然后打印公共ID作为结尾。
一种方法是将ID设置为索引,然后:
common_ids = df1.index.intersection(df2.index)
c = records.iloc[common_ids,:]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句