Достать по ID в датафрейме данные с SQL, используя запрос

Имеется эксель файл, который преобразую в датафрейм и по строке колонки датафрейма с названием "A6" итерационно хочу доставать через запрос данные из sql'а, чтобы потом добавить эти данные в датафрейм (добавляется новая колонка с фамилией, и на строке ID соответствует данной фамилии). Но в результате работы добавляется только последняя строка, что делаю не так?

import pypyodbc
import pandas as pd
server = 'DMITRY\SQLEXPRESS'
database = 'RGSNEW1'
cnxn = pypyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database)
cursor = cnxn.cursor()
xlsx = pd.read_excel("dat1.xlsx", dtype={"A6": str)# как строка потому что в SQL это большое число строчного типа
for ind in range (len(xlsx)):
 
    id_excel = xlsx.iloc[ind]["A6"]
    query = (f"""
               SELECT Pers.Surname
FROM Pers
WHERE Pers.ID = '{id_excel}'
""")
    dtb1 = pd.read_sql(query, cnxn)
    dtb2 = pd.concat ([xlsx, dtb1],axis=1,ignore_index=True)#склеивание по столбцам, в этом и ошибка, использовать append?
dtb2.to_excel("concat.xlsx")
print(dtb1)
print(dtb2)

Ответы (1 шт):

Автор решения: Андрей Ковров

Сделал так, работает:

import pypyodbc
import pandas as pd
server = 'DMITRY\SQLEXPRESS'
database = 'RGSNEW1'
cnxn = pypyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database)
cursor = cnxn.cursor()
xlsx = pd.read_excel("dat1.xlsx", dtype={"A6": str})
dtb = pd.DataFrame()
for ind in range (len(xlsx)):

    id_excel = xlsx.iloc[ind]["A6"]
    query = (f"""
               SELECT Pers.Surname
FROM Pers
WHERE Pers.ID = '{id_excel}'
""")
    dtb1 = pd.read_sql(query, cnxn)
    dtb = pd.concat ([dtb, dtb1], ignore_index=True)
xlsx = pd.concat([xlsx, dtb], axis = 1)
for ind1 in range (len(xlsx)):
   print(ind1)
   for ind in range (len(xlsx)):
      if xlsx.iloc[ind1]['A6'] == xlsx.iloc[ind]['enp']:
         xlsx.at[ind1, 'A51'] = xlsx.iloc[ind]['surname']#присвоение в нужный столбец
         break
xlsx.drop(columns = ['surname'],axis = 1, inplace=True)#чистка от лишних столбцов
xlsx.to_excel("done.xlsx")
→ Ссылка