Para facilitar el análisis de los datos en la tabla, podemos remodelar los datos en una forma más amigable para la computadora usando Pandas en Python. Pandas.melt() es una de las funciones para hacerlo.
Pandas.melt() desvía un DataFrame de formato ancho a formato largo.
La función melt() es útil para enviar mensajes a un DataFrame en un formato en el que una o más columnas son variables de identificación, mientras que todas las demás columnas, consideradas variables medidas, no están vinculadas al eje de la fila, dejando solo dos columnas sin identificador, variable y valor.
Sintaxis:
pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)
Parámetros:
frame : DataFrame
id_vars[tupla, lista o ndarray, opcional] : Columna(s) para usar como variables de identificación.
value_vars[tupla, lista o ndarray, opcional]: Columna(s) para anular el pivote. Si no se especifica, usa todas las columnas que no están configuradas como id_vars.
var_name[scalar]: Nombre a usar para la columna ‘variable’. Si es Ninguno, usa marco.columnas.nombre o ‘variable’.
value_name[scalar, default ‘value’]: Nombre a usar para la columna ‘value’.
col_level[int o string, opcional]: si las columnas son un índice múltiple, use este nivel para derretir.
Ejemplo:
Python3
# Create a simple dataframe # importing pandas as pd import pandas as pd # creating a dataframe df = pd.DataFrame({'Name': {0: 'John', 1: 'Bob', 2: 'Shiela'}, 'Course': {0: 'Masters', 1: 'Graduate', 2: 'Graduate'}, 'Age': {0: 27, 1: 23, 2: 21}}) df
Python3
# Name is id_vars and Course is value_vars pd.melt(df, id_vars =['Name'], value_vars =['Course'])
Python3
# multiple unpivot columns pd.melt(df, id_vars =['Name'], value_vars =['Course', 'Age'])
Python3
# Names of ‘variable’ and ‘value’ columns can be customized pd.melt(df, id_vars =['Name'], value_vars =['Course'], var_name ='ChangedVarname', value_name ='ChangedValname')