Панды заполняют датафрейм из цикла - PullRequest
0 голосов
/ 08 мая 2018

Мне нужно создать пустой фрейм данных, чтобы создать столбцы и заполнить их в цикле с результатом запроса SQL.

Мой запрос выглядит так:

from sqlalchemy import create_engine
from sqlalchemy.sql import text
import pandas as pd

engine = create_engine('connection')
script = 'select * from table  WHERE id=1111;'

query = text(script)
result = engine.execute(query)

rep = {"\\": "", "{": "","}":"",'"':"","attributes:":""}


def replace_all(text, dic):
    for i, j in dic.items():
        text = text.replace(i, j)
    return text    


df = pd.DataFrame()


for i in result:
    clean = replace_all(i[3],rep)
    field = clean.split(',')
    for item in field:
        info = item.split(":")
        df[info[0]] = info[1]

print(df)

При печати я вижустолбцы созданы, но внутри есть какие-либо данные, почему?

Пустые столбцы DataFrame: [customer_id, from_country, ......] Индекс: []

[0 строк x 63 столбцов]

1 Ответ

0 голосов
/ 08 мая 2018

Вы не добавляете новые данные в фрейм данных на любом этапе.

Вы можете добавить строку к нему, создав словарь

d = {info[0]:info[1]}
df = df.append(d, ignore_index=True)

где info [0] будет именем вашего столбца, а info [1] будет значением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...