Bom dia!
Estou carregando os dados conforme abaixo:
dados = {
'id_controle' : ['01', '03', '05', '11', '01', '03', '05', '11', '01', '04', '05', '89', '01', '04', '05', '89'],
'id_material' : ['4000', '4000', '4000', '4000', '4000', '4000', '4000', '4000', '4001', '4001', '4001', '4001', '4002', '4002', '4002', '4002'],
'id_planta' : ['0050', '0050', '0050', '0050', '0080', '0080', '0080', '0080', '0080', '0080', '0080', '0080', '0050', '0050', '0050', '0050'],
'atributo1' : ['A', 'B', 'C', '', 'A', 'B', 'C', '', 'C', 'B', 'B', 'A', 'D', '', 'A', 'A'],
'atributo2' : ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'],
'atributo3' : ['', 'X', 'X', '', 'X', 'X', 'X', 'X', '', 'X', 'X', 'X', '', 'X', 'X', 'X']
}
df = pd.DataFrame(data=dados, dtype=str)
O meu objetivo é construir um agrupamento pelas colunas ['id_controle', 'id_planta']
cuja agregação me mostre a frequência dos valores para cada uma das outras colunas.
Fazendo df.groupby(['id_controle', 'id_planta']).count()
obtenho um resultado semelhante ao que necessito, mas não consigo aninhar os valores das colunas e suas frequências! http://prntscr.com/qt1c9e
O mesmo quando faço
df.pivot_table(
values='id_material',
index=['id_controle', 'id_planta'],
columns=['atributo1', 'atributo2', 'atributo3'],
aggfunc=len)
Aqui até consigo aninhar os valores e frequências, mas veja na imagem que eles ficam empilhados de forma que os dados não fazem sentido para a minha leitura. http://prntscr.com/qt1hi7
Me ajudem por favor! Estou quebrando a cabeça desde quarta-feira com este problema :(