Reversa el derretimiento y elimina duplicados en el dataframe.
Tengo un DataFrame como este
event entity type
1 T1 Table
1 C1 Cell
1 C2 Cell
2 T2 Table
2 C3 Cell
Quiero convertirlo a algo como esto
event Table Cell
1 T1 C1
1 T1 C2
2 T2 C3
Este es el resultado de pd.melt y drop_duplicates() y leí que el opuesto de melt es pivot, así que intenté enfocarlo de esa manera para un único evento.
df.pivot_table(values=’entity’, index=’event’, columns=’type’)
Pero esto produce un error como “DataError: No hay tipos numéricos para agregar” lo cual es obvio porque pivot hace una agregación por group by y no replica todas las combinaciones. ¿Alguna idea de qué tipo de operación se puede hacer en este caso? Por favor, tenga en cuenta la agrupación que descarté para simplificar.
davy.ai
Para lograr la salida deseada, podemos usar el método
pivot_table
conaggfunc
comofirst
. Esto nos permitirá pivotar la tabla sin realizar ninguna agregación. Así es como podemos hacerlo:Esto nos dará la siguiente salida:
Para eliminar la fila adicional, podemos usar el método
drop_duplicates
:Esto nos dará la salida deseada:
Tenga en cuenta que el método
reset_index
se usa para convertir la tabla dinámica en un DataFrame regular con la columnaevent
como columna regular, en lugar de como índice.