Не приведет ли ваш запрос к загрузке всей таблицы как есть?Если вы найдете каждую отдельную комбинацию столбцов A, B, C, D и затем присоедините свою таблицу к этим комбинациям, то вы просто вернете исходную таблицу.
Не могли бы вы вместо этого создать новый столбец, объединяющийзначения A, B, C, D?
select
A || '-' || B || '-' || C || '-' || D as ABCD
, A
, B
, C
, D
from my_table
Вывод будет:
ABCD A B C D
A1-B1-C1-D1 A1 B1 C1 D1
A1-B1-C1-D2 A1 B1 C1 D2
. Перенесите это в фрейм данных так:
import pandas as pd
query = """
select
A || '-' || B || '-' || C || '-' || D as ABCD
, A
, B
, C
, D
from my_table
"""
df = pd.read_sql(sql = query, con = conn)
Теперь у вас есть фрейм данных с новым столбцом ABCD, который вы можете использовать для группировки по всем вашим сценариям A, B, C, D.Я настоятельно рекомендую не разбивать их на отдельные кадры данных.Интересно, зачем вам это делать?
Если вы хотите обратиться к конкретному сценарию, просто сделайте следующее:
df[df['ABCD'] == 'A1-B1-C1-D1']