Я ищу способ запроса выбранного набора атрибутов (возможно, внутри функции), чтобы я мог экспериментировать с различными наборами атрибутов при создании модели ML для классификации.
Следующее в настоящее время работает, но не является динамическим, как я бы предпочел. Конечно, я мог бы ввести каждый атрибут, который я хочу, для каждого теста, но это не работает для поиска в сетке различных наборов атрибутов и т. Д.
peak_info = (session.query(Peak, LogFile).join(NmhcLine).join(GcRun)
.join(LogFile).filter(LogFile.date > datetime(2019,1,1))
.with_entities(Peak.pa, Peak.rt, LogFile.GCHeadP).all())
Количество объединений просто для того, чтобы принудительно установить определенный уровень контроля качества, который применяется к более высоким объектам в моей модели, а фильтр даты должен ограничить количество результатов разумным количеством для тестирования. Это возвращает хороший результат с тремя кортежами, который я помещаю в фрейм данных 3xn.
Что я хотел бы сделать, так это предоставить список атрибутов для классов Peak и Logfile, чтобы последняя строка могла выглядеть примерно так:
.with_entities([peak_attr1, peak_attr2], [logfile_attr1, etc]).all())
Я не привязан к with_entities (), если есть лучший способ добиться этого, предполагая, что результаты должны быть легко проанализированы в кадре данных.
Изменить:
arglist = [getattr(LogFile, 'date'), Peak.pa, Peak.rt, LogFile.GCHeadP]
peak_info = (session.query(Peak, LogFile).join(NmhcLine).join(GcRun)
.join(LogFile).filter(LogFile.date > datetime(2019,1,1))
.join(Datum).filter()
.with_entities(*arglist).all())
Благодаря J.J. Комментарий Хакалы Мне удалось заставить вышеописанное работать с двумя разными способами указания атрибутов. Мне было интересно, не хватает ли мне какого-нибудь решения на Python, поэтому вопросы, специфичные для SQLAlchemy, ни к чему меня не приводили. Спасибо!