Как использовать фрейм данных в SQLalchemy - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть два фрейма данных демографических данных и данных о лекарствах, которые я создал из файла с разделителями каналов:

demo='xxyy1046_demo.txt'
demog=pd.read_table(demo, delimiter='|', header=0)
demog.info()

med='xxyy1046_medication.txt'
meds=pd.read_table(med, delimiter='|', header=0)
meds.info() #n=2654

Теперь я хочу использовать SQLalchemy для преобразования этих фреймов данных в объекты таблицы SQL, которые я могу выбрать,join, group_by и т. д.

from sqlalchemy import create_engine, column, select, Table, Metadata
engine = create_engine('sqlite://', echo=False)
demog.to_sql('Demog_sql', con=engine)

metadata = sql.Metadata()
demog_sql = Table('Demog_sql', metadata, autoload=True, autoload_with=engine)
stmt = select([demog_sql.columns.FirstName]) 
print(stmt)

Я получаю результат: ВЫБЕРИТЕ "Demog_sql". "FirstName" ОТ "Demog_sql"

Это не то, что я хочу!Я хочу иметь возможность манипулировать данными с помощью операторов выбора, объединений и т. Д. Я делаю что-то не так с шагом метаданных.Как мне это исправить?

1 Ответ

0 голосов
/ 05 декабря 2018

Вы печатаете строковое представление самого объекта оператора.Кажется, вы хотели бы выполнить это вместо.Например:

results = engine.execute(stmt).fetchall()

Для объединений и т. П. Вы должны вызывать дополнительные методы в своем утверждении, лучше всего объясненные в учебнике , который следует прочитать, прежде чем продолжить.

В некоторых случаях вам не нужно загружать данные в SQL для объединений и т. Д. Панды могут делать это тоже между кадрами данных.

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