Transformar valores en columnas y crear formato largo a ancho usando Pandas.
Tengo un conjunto de datos en el que deseo transformar los valores en columnas y crear un formato largo a ancho utilizando Pandas.
Datos
id tipo Q122 Q222 Q322
aa hi 4 6 7
aa hello 2 3 3
aa ok 6 8 9
aa bye 1 1 1
Deseado
id fecha tipo conteo
aa Q122 hi 4
aa Q122 hello 2
aa Q122 ok 6
aa Q122 bye 1
aa Q222 hi 6
aa Q222 hello 3
aa Q222 ok 8
aa Q222 bye 1
aa Q322 hi 7
aa Q322 hello 3
aa Q322 ok 9
aa Q322 bye 1
Realizando
a = df.set_index([‘id’, ‘fecha’]).rename_axis(columns=’tipo’).stack()
También estoy buscando incorporar los conteos en el resultado final, cualquier sugerencia es apreciada.
davy.ai
Solución
Puede utilizar
pandas.melt
para transformar sus datos de formato ancho a largo.Resultado