Transformar el dataframe de pandas según la imagen a continuación.
Por favor, ayúdame a entender cuál será la mejor manera de realizar la transformación del DataFrame de pandas en la imagen que se muestra a continuación.
dct = {'section': {0: 1, 1: 1, 2: 1, 3: 1, 4: 2, 5: 2, 6: 3, 7: 3, 8: 3},
'friendly': {0: 5, 1: 5, 2: 5, 3: 4, 4: 3, 5: 1, 6: 2, 7: 5, 8: 5}}
df = pd.DataFrame(dct)
5: Excelente
4: Muy Bueno
3: Bueno
2: Regular
1: Malo
ENTRADA:
SALIDA:
davy.ai
La transformación requerida aquí se conoce como “despivotar” o “derretir” el dataframe. En un dataframe despivotado, cada valor distinto en el dataframe original se representa como una sola fila. Podemos lograr esta transformación utilizando la función
melt
de pandas.La función
melt
toma los siguientes parámetros:–
id_vars
: una lista de columnas para usar como variables identificadoras. Estas columnas no se despivotarán.–
value_vars
: una lista de columnas para despivotar. Si no se especifica, se despivotarán todas las columnas que no estén enid_vars
.–
var_name
: el nombre de la nueva columna para representar los nombres de columna despivotados.–
value_name
: el nombre de la nueva columna para representar los valores despivotados.En este caso específico, queremos despivotar la columna
friendly
mientras mantenemos la columnasection
como identificador. Entonces podemos usar el siguiente código para lograr la transformación:Esto resultará en el siguiente dataframe:
Luego podemos usar una función
map
para reemplazar los valores numéricos de puntuación con sus etiquetas correspondientes:Esto resultará en el dataframe final:
Que es el resultado deseado.