Pandas pandas.melt() Função
-
Sintaxe de
pandas.melt()
-
Códigos de exemplo:
pandas.melt()
-
Códigos de exemplo:
pandas.melt()
Com uma única coluna comoid_vars
-
Códigos de exemplo:
pandas.melt()
Com colunas de pulo -
Códigos de exemplo:
pandas.melt()
Com várias colunas
A função pandas.melt()
funcionalidade reformula ou transforma um DataFrame
existente. Ela muda a orientação do DataFrame
de um formato amplo para um formato longo.
Sintaxe de pandas.melt()
pandas.melt(dataframe, id_vars, value_vars, var_name, value_name, col_level)
Parâmetros
Dataframe |
obrigatório | É o DataFrame que desejamos mudar para o formato longo. |
id_vars |
opcional | Pode ser um tuple , uma lista ou uma array N-dimensional. É a coluna utilizada para as variáveis identificadoras. Você pode selecionar mais de uma coluna identificadora. |
value_vars |
opcional | Pode ser um tuple , uma lista ou uma array N-dimensional. Por padrão, as colunas não especificadas como variáveis identificadoras são variáveis de valor. Você também pode selecioná-las. |
var_name |
opcional | É uma variável do tipo scalar . É o nome da coluna identificadora. Por padrão, é variable . |
value_name |
opcional | É uma variável do tipo scalar . É o nome da coluna não-identificadora. Por padrão, ela é value . |
col_level |
opcional | É um inteiro ou um string . No caso de colunas com vários índices, podemos utilizar este parâmetro para transformar nosso DataFrame . |
Retornar
Ele retorna um DataFrame
transformado que contém uma ou mais colunas identificadoras e apenas duas colunas não-identificadoras nomeadas variável e valor.
Códigos de exemplo: pandas.melt()
A princípio, verificaremos esta função apenas passando o parâmetro obrigatório, ou seja, DataFrame
.
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: '90%', 1: '75%', 2: '82%',3: '64%',4: '45%'}})
dataframe1 = pd.melt(dataframe)
print(dataframe1)
Nosso DataFrame
se parece com
Attendance Name Obtained Marks
0 60 Olivia 90%
1 100 John 75%
2 80 Laura 82%
3 78 Ben 64%
4 95 Kevin 45%
Resultado:
variable value
0 Attendance 60
1 Attendance 100
2 Attendance 80
3 Attendance 78
4 Attendance 95
5 Name Olivia
6 Name John
7 Name Laura
8 Name Ben
9 Name Kevin
10 Obtained Marks 90%
11 Obtained Marks 75%
12 Obtained Marks 82%
13 Obtained Marks 64%
14 Obtained Marks 45%
Aqui, você pode ver que na saída não há coluna identificadora. Temos duas colunas não-identificadoras. Cada coluna da DataFrame
original é agora uma linha na saída DataFrame
.
Agora vamos passar os parâmetros opcionais e verificar os resultados.
Códigos de exemplo: pandas.melt()
Com uma única coluna como id_vars
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(dataframe, id_vars=["Name"])
print(dataframe1)
Resultado:
Name variable value
0 Olivia Attendance 60
1 John Attendance 100
2 Laura Attendance 80
3 Ben Attendance 78
4 Kevin Attendance 95
5 Olivia Obtained Marks 90%
6 John Obtained Marks 75%
7 Laura Obtained Marks 82%
8 Ben Obtained Marks 64%
9 Kevin Obtained Marks 45%
A coluna identificadora é especificada como Name
, e as colunas variable
e value
estão ao lado dela com os valores extraídos do DataFrame original.
Também poderíamos atribuir nomes de var_name
e value_name
para substituir as variable
e value
padrão.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(
dataframe, id_vars=["Name"], var_name="Performance", value_name="Success"
)
print(dataframe1)
Resultado:
Name Performance Success
0 Olivia Attendance 60
1 John Attendance 100
2 Laura Attendance 80
3 Ben Attendance 78
4 Kevin Attendance 95
5 Olivia Obtained Marks 90%
6 John Obtained Marks 75%
7 Laura Obtained Marks 82%
8 Ben Obtained Marks 64%
9 Kevin Obtained Marks 45%
Códigos de exemplo: pandas.melt()
Com colunas de pulo
Se quisermos verificar apenas o comparecimento, precisamos especificar o value_vars
.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(
dataframe,
id_vars=["Name"],
value_vars="Attendance",
var_name="Performance",
value_name="Success",
)
print(dataframe1)
Resultado:
Name Performance Success
0 Olivia Attendance 60
1 John Attendance 100
2 Laura Attendance 80
3 Ben Attendance 78
4 Kevin Attendance 95
Ela mostra apenas as informações da coluna Attendance
no campo de dados original.
Códigos de exemplo: pandas.melt()
Com várias colunas
Acrescentamos uma coluna extra ID
ao DataFrame de demonstração.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"ID": {0: 1, 1: 2, 2: 3, 3: 4, 4: 5},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(dataframe, id_vars=["ID", "Name"])
print(dataframe1)
Resultado:
ID Name variable value
0 1 Olivia Attendance 60
1 2 John Attendance 100
2 3 Laura Attendance 80
3 4 Ben Attendance 78
4 5 Kevin Attendance 95
5 1 Olivia Obtained Marks 90%
6 2 John Obtained Marks 75%
7 3 Laura Obtained Marks 82%
8 4 Ben Obtained Marks 64%
9 5 Kevin Obtained Marks 45%
As colunas ID
e Name
são designadas como colunas identificadoras.