Соответствие значений в 2 листах Excel книги с использованием pandas и openpyxl - PullRequest
1 голос
/ 11 марта 2020

В моем файле xlsx есть 2 листа. Файл хранится локально. когда я печатаю строки и столбцы, я получаю вывод. то, что я хочу, если любое значение в первом столбце (идентификатор пациента) листа «Информация о пациенте» совпадает с любым значением в первом столбце (идентификатор p) листа «записи», то я хочу добавить это значение ячейки из листа «записи» к списку 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)

1 Ответ

0 голосов
/ 11 марта 2020

Если вы пытаетесь просто получить общие идентификаторы из обоих фреймов данных, возможно, будет проще и проще использовать операцию пересечения для поиска общих идентификаторов. Этот ответ может быть полезен:

Если нет, вы всегда можете распечатать их, а затем распечатать общие идентификаторы как конец.

Один из способов сделать это - установить идентификаторы как индекс и затем:

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