Funzione Pandas pandas.melt()
-
Sintassi di
pandas.melt()
-
Codici di esempio:
pandas.melt()
-
Codici di esempio:
pandas.melt()
con una singola colonna comeid_vars
-
Codici di esempio:
pandas.melt()
con colonne da saltare -
Codici di esempio:
pandas.melt()
con più colonne
La funzione pandas.melt()
rimodella o trasforma un DataFrame
esistente. Cambia l’orientamento del DataFrame
da un formato ampio a un formato lungo.
Sintassi di pandas.melt()
pandas.melt(dataframe, id_vars, value_vars, var_name, value_name, col_level)
Parametri
Dataframe |
obbligatorio | È il DataFrame che desideriamo cambiare nel formato lungo. |
id_vars |
opzionale | Può essere una tupla , una lista o un array N-dimensionale. È la colonna utilizzata per le variabili identificative. È possibile selezionare più di una colonna di identificatori. |
value_vars |
opzionale | Può essere una tupla , una lista o un array N-dimensionale. Per impostazione predefinita, le colonne non specificate come variabili identificative sono variabili valore. Puoi anche selezionarli. |
var_name |
opzionale | È una variabile di tipo scalare . È il nome della colonna dell’identificatore. Per impostazione predefinita, è variabile . |
value_name |
opzionale | È una variabile di tipo scalare . È il nome della colonna non identificativa. Per impostazione predefinita, è value . |
col_level |
opzionale | È un numero intero o una stringa. Nel caso di colonne multi-indice, possiamo usare questo parametro per trasformare il nostro DataFrame . |
Ritorno
Restituisce un DataFrame
trasformato che contiene una o più colonne identificative e solo due colonne non identificative denominate variable
e value
.
Codici di esempio: pandas.melt()
In un primo momento, controlleremo questa funzione passando solo il parametro obbligatorio, ovvero 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)
L’esempio DataFrame
è il seguente.
Attendance Name Obtained Marks
0 60 Olivia 90%
1 100 John 75%
2 80 Laura 82%
3 78 Ben 64%
4 95 Kevin 45%
Produzione:
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%
Qui puoi vedere che nell’output non c’è una colonna identificatore. Abbiamo due colonne non identificative. Ogni colonna dell’originale DataFrame
è ora una riga nell’output DataFrame
.
Ora passeremo i parametri opzionali e controlleremo i risultati.
Codici di esempio: pandas.melt()
con una singola colonna come 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)
Produzione:
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%
La colonna dell’identificatore è specificata come Name
e accanto ad essa si trovano le colonne variable
e value
con i valori estratti dal dataframe originale.
Potremmo anche assegnare nomi di var_name
e value_name
per sostituire la variable
e i value
predefiniti.
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)
Produzione:
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%
Codici di esempio: pandas.melt()
con colonne da saltare
Se vogliamo controllare solo la presenza, dobbiamo specificare 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)
Produzione:
Name Performance Success
0 Olivia Attendance 60
1 John Attendance 100
2 Laura Attendance 80
3 Ben Attendance 78
4 Kevin Attendance 95
Mostra solo le informazioni della colonna Presenze
nel dataframe originale.
Codici di esempio: pandas.melt()
con più colonne
Aggiungiamo una colonna extra ID
al dataframe demo.
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)
Produzione:
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%
Entrambe le colonne ID
e Name
sono assegnate come colonne identificative.