У меня есть набор данных, состоящий из категориальных и числовых столбцов. Например: набор данных зарплаты
столбцы: ['job', 'country_origin', 'age', 'salary', 'degree','marital_status']
четыре категориальных столбца и два числовых столбца, и я хочу использовать три агрегатные функции:
cat_col = ['job', 'country_origin','degree','marital_status']
num_col = [ 'age', 'salary']
aggregate_function = ['avg','max','sum']
В настоящее время яу меня есть код Python, использующий необработанный запрос, в то время как моя цель - получить результаты группового запроса из всех комбинаций из списков, перечисленных выше:
мой запрос: "SELECT cat_col[0], aggregate_function[0](num_col[0]) from DB where marital_status = 'married' groub by cat_col[0]"
Итак, запросы:
q1 = select job, avg(age) from DB where marietal_status='married' groub by job
q2 = select job, avg(salary) from DB where marietal_status='married' groub by job
etc
Я использовал for loop
, чтобы получить результат от всех комбинаций.
Моя проблема в том, что я хочу изменить этот запрос на запрос Pandas. Я провел пару часов, но не смог решить.
У Pandas другой способ запроса данных.
Пример кадра данных:
df2 = pd.DataFrame(np.array([['programmer', 'US', 28,4000, 'master','unmarried'],
['data scientist', 'UK', 30,5000, 'PhD','unmarried'],
['manager', 'US', 48,9000, 'master','married']]),
columns=[['job', 'country_origin', 'age', 'salary', 'degree','marital_status']])