Python é uma ótima linguagem para fazer análise de dados, principalmente por causa do fantástico ecossistema de pacotes python centrados em dados. O Pandas é um desses pacotes e torna a importação e análise de dados muito mais fácil.

A dataframe.melt()função Pandas unpivots um DataFrame de formato largo para formato longo, opcionalmente deixando o conjunto de variáveis ​​de identificador. Esta função é útil para massagear um DataFrame em um formato onde uma ou mais colunas são variáveis ​​identificadoras (id_vars), enquanto todas as outras colunas, consideradas variáveis ​​medidas (value_vars), são "não dinamizadas" para o eixo da linha, deixando apenas dois não identificadores colunas, 'variável' e 'valor'.

Sintaxe: DataFrame.melt (id_vars = None, value_vars = None, var_name = None, value_name = 'value', col_level = None)
Parâmetros:
frame: DataFrame
id_vars: Coluna (s) para usar como variáveis ​​identificadoras
value_vars: Column (s) para unpivot. Se não for especificado, usa todas as colunas que não estão definidas como id_vars.
var_name: Nome a ser usado para a coluna 'variável'. Se None, usa frame.columns.name ou 'variable'.
value_name: Nome a ser usado para a coluna 'value'
col_level: Se as colunas forem MultiIndex, use este nível para derreter.

Retorna: DataFrame em um formato onde uma ou mais colunas são variáveis ​​de identificador

Exemplo # 1: Use a melt()função para definir a coluna “A” como a variável identificadora e a coluna “B” como variável de valor.

# importing pandas as pd
import pandas as pd
  
# Creating the dataframe 
df = pd.DataFrame({"A":[12, 4, 5, 44, 1], 
                   "B":[5, 2, 54, 3, 2], 
                   "C":[20, 16, 7, 3, 8], 
                   "D":[14, 3, 17, 2, 6]})
  
# Print the dataframe
df

Vamos usar a dataframe.melt()função para definir a coluna “A” como variável identificadora e a coluna “B” como a variável de valor.

# function to unpivot the dataframe
df.melt(id_vars =['A'], value_vars =['B'])

Saída:

 
Exemplo # 2: Use a melt()função para definir a coluna “A” como a variável identificadora e a coluna “B” e “C” como variável de valor. Também personalize os nomes da coluna de valor e variável.

# importing pandas as pd
import pandas as pd
  
# Creating the dataframe 
df = pd.DataFrame({"A":[12, 4, 5, 44, 1],
                   "B":[5, 2, 54, 3, 2], 
                   "C":[20, 16, 7, 3, 8], 
                   "D":[14, 3, 17, 2, 6]})
  
# Print the dataframe
df

Vamos usar a dataframe.melt()função para definir a coluna “A” como variável identificadora e as colunas “B” e “C” como a variável de valor.

# function to unpivot the dataframe
# We will also provide a customized name to the value and variable column
  
df.melt(id_vars =['A'], value_vars =['B', 'C'], 
        var_name ='Variable_column', value_name ='Value_column')

Saída :