Я работаю с данными из Обследования рабочей силы Канады. Он имеет следующие столбцы:
Index(['SURVYEAR', 'SURVMNTH', 'LFSSTAT', 'PROV', 'CMA', 'AGE_12', 'AGE_6',
'SEX', 'MARSTAT', 'EDUC', 'MJH', 'EVERWORK', 'FTPTLAST', 'COWMAIN',
'IMMIG', 'NAICS_21', 'NOC_10', 'NOC_40', 'YABSENT', 'WKSAWAY',
'PAYAWAY', 'UHRSMAIN', 'AHRSMAIN', 'FTPTMAIN', 'UTOTHRS', 'ATOTHRS',
'HRSAWAY', 'YAWAY', 'PAIDOT', 'UNPAIDOT', 'XTRAHRS', 'WHYPT', 'TENURE',
'PREVTEN', 'HRLYEARN', 'UNION', 'PERMTEMP', 'ESTSIZE', 'FIRMSIZE',
'DURUNEMP', 'FLOWUNEM', 'UNEMFTPT', 'WHYLEFTO', 'WHYLEFTN', 'DURJLESS',
'AVAILABL', 'LKPUBAG', 'LKEMPLOY', 'LKRELS', 'LKATADS', 'LKANSADS',
'LKOTHERN', 'PRIORACT', 'YNOLOOK', 'TLOLOOK', 'SCHOOLN', 'EFAMTYPE',
'AGYOWNK', 'FINALWT'],
dtype='object')
Каждый столбец является категориальной переменной. Например, провинция имеет десять уникальных значений (числа от 1 до 10), каждое из которых соответствует отдельной канадской провинции. Аналогично, NOC_10 является категориальной переменной для таких профессий, как профессии менеджеров или работники здравоохранения. Каждая строка в кадре данных имеет различную комбинацию этих категориальных переменных. Таким образом, FINALWT - это число людей в Канаде с указанными c характеристиками (эта переменная FINALWT рассчитывается по результатам обследования рабочей силы в Канаде).
Я хочу создать фрейм данных, в котором все столбцы значения из каждой категориальной переменной для каждой провинции в конкретном c месяце определенного c года. Например, первая строка будет первой провинцией в первом месяце первого года с каждой категорией (ie из NOC_10) столбцом (ie из NOC_10_1, NOC_10_2, NOC_10_3, ..., NOC_10_10). Это было бы то же самое для каждого столбца.
Я начал с группы по методу:
count_df = pd.DataFrame()
for col in data.columns[4:]:
count_df[col] = data.groupby(["SURVYEAR", "SURVMNTH", "PROV", col])['FINALWT'].sum()
Однако это объединяет данные и (по некоторым причинам) группы по первым столбец, который в данном случае является "CMA".
Я думал, что функция get_dummies могла бы быть полезной, но изо всех сил пытался применить ее соответствующим образом.
Заранее спасибо.