logo

Python | Pandas.melt()

Per facilitar l'anàlisi de les dades d'una taula, podem remodelar les dades en una forma més fàcil d'utilitzar mitjançant Pandas a Python. Pandas.melt() és una de les funcions per fer-ho. Pandas.melt() desactiva un DataFrame de format ampli a format llarg.

java fer mentre exemple

Els pandes es fonen () La funció és útil per fer massatges un DataFrame en un format en què una o més columnes són variables identificadores, mentre que totes les altres columnes, considerades variables mesurades, no es pivoten a l'eix de la fila, deixant només dues columnes no identificadores, variable i valor.

Sintaxi de la funció Python Pandas.melt().

Sintaxi: pandas.melt(frame, id_vars=Cap, value_vars=Cap,



var_name=Cap, value_name='valor', col_level=Cap)

Paràmetres:

  • marc: DataFrame
  • id_vars[tupla, llista o ndarray, opcional]: Columnes a utilitzar com a variables identificadores.
  • value_vars[tupla, llista o ndarray, opcional]: Columna(s) per desviar. Si no s'especifica, utilitza totes les columnes que no s'estableixen com a id_vars.
  • var_name[escalar]: Nom que cal utilitzar per a la columna 'variable'. Si cap, utilitza frame.columns.name o 'variable'.
  • nom_valor[escalar, 'valor' per defecte]: Nom que cal utilitzar per a la columna 'valor'.
  • col_level[int o cadena, opcional]: Si les columnes són un MultiIndex, feu servir aquest nivell per fondre.

Creació d'un marc de dades de mostra

Aquí, hem creat un DataFrame de mostra que utilitzarem en aquest article.

Python 3




# 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>

>

>

fondre () fer en Pandas Exemple

A continuació es mostra l'exemple de com podem utilitzar la funció Pandas melt() de diferents maneres Pandes :

Exemple 1: Pandas melt() Exemple

En aquest exemple, elpd.melt>La funció s'utilitza per desviar la columna 'Curs' mentre es manté 'Nom' com a variable identificadora. El DataFrame resultant té tres columnes: 'Nom', 'variable' (que conté el nom de la columna 'Curs') i 'valor' (que conté els valors corresponents de la columna 'Curs').

Python 3




# Name is id_vars and Course is value_vars> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>])>

>

>

Sortida:

 Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>

Exemple 2: ús de id_vars i value_vars per fondre () d'un Pandas DataFrame

En aquest exemple, elpd.melt>La funció s'utilitza per desviar les columnes 'Curs' i 'Edat' mentre s'utilitza 'Nom' com a variable identificadora.

Python 3




diferència entre el gel i la neu
# multiple unpivot columns> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>])>

>

>

Sortida:

 Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate 3 John Age 27 4 Bob Age 23 5 Shiela Age 21>

Exemple 3: ús de var_name i value_name per fondre () d'un Pandas DataFrame

En aquest exemple, elpd.melt>La funció s'utilitza amb noms de columnes personalitzats. La columna 'Curs' no està pivotada mentre es conserva 'Nom' com a identificador. El DataFrame resultant té les columnes 'Nom', 'NomVar canviat' (per al nom de la columna fosa, establert en 'Curs') i 'NomVal modificat' (que conté els valors corresponents de la columna 'Curs').

Python 3




# Names of ‘variable’ and ‘value’ columns can be customized> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>],> >var_name>=>'ChangedVarname'>, value_name>=>'ChangedValname'>)>

>

>

Sortida:

 Name ChangedVarname ChangedValname 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>

Exemple 4: ús de ignore_index amb la funció Pandas.melt().

En aquest exemple, elpd.melt>La funció s'aplica per desviar les columnes 'Curs' i 'Edat' mentre s'utilitza 'Nom' com a variable identificadora. L'índex original s'ignora a causa deignore_index=True>paràmetre.

Python 3

versió java linux




# multiple unpivot columns with ignore_index> result>=> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>], ignore_index>=>True>)> print>(result)>

>

>

Sortida:

 Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate 3 John Age 27 4 Bob Age 23 5 Shiela Age 21>