Добавить результаты из нескольких SQL-запросов в Pandas Dataframe или словарь - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь пройтись по нескольким запросам SQL и добавить результаты этих запросов в фрейм данных или словарь, ключом которого является запрос SQL

Мне удалось получить результаты из этих запросов SQL.

from pandas import DataFrame
for index, row in df.iterrows(): 
    cur.execute(row["SQL_Query"]) 
    print(cur.fetchall())

Вывод:

[(datetime.date (2019, 4, 8), datetime.date (2019, 4, 1))]

[(2,)]

[('6', 2), ('7', 2)]

[(13, 2)]

Но когда я пытаюсь добавитья могу получить результат только из последнего запроса.

from pandas import DataFrame
for index, row in df.iterrows(): 
    res = cur.execute(row["SQL_Query"]) 
    df['Results'] = DataFrame(cur.fetchall())

«Вывод»

В настоящее время цель состоит только в том, чтобы получить результатыиз SQL-запросов в разных столбцах.Например, запрос возвращает значения Total Count и Failed Count, которые находятся в 2 разных столбцах.

1 Ответ

0 голосов
/ 17 апреля 2019

Проблема в том, что вы выполняете итерации по фрейму данных для запросов, а затем присваиваете им значение df ['Results'] каждый раз. Вам следует применить значение индекса.

Нижеследующее должно сработать или, по крайней мере, вывести вас на правильный путь. Я не могу воспроизвести это быстро, чтобы проверить это.

from pandas import DataFrame
for index, row in df.iterrows(): 
    cur.execute(row["SQL_Query"]) 
    df.loc[index,'Results'] = cur.fetchall()
...