Maison >développement back-end >Tutoriel Python >Comment faire fondre et défondre les DataFrames Pandas : un guide complet ?

Comment faire fondre et défondre les DataFrames Pandas : un guide complet ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-24 11:08:13155parcourir

How to Melt and Unmelt Pandas DataFrames: A Comprehensive Guide?

Comment faire fondre une dataframe pandas ?

La fusion d'une dataframe implique de transposer les données d'un format large vers un format long, où plusieurs les colonnes sont fusionnées et ne font plus qu'une.

Comment utiliser melt?

Pour utiliser melt sur une trame de données, vous pouvez utiliser la fonction pd.melt(). Cette fonction prend les arguments suivants :

  • id_vars : Spécifie les colonnes qui doivent être utilisées comme identifiants.
  • value_vars : Spécifie les colonnes qui doivent être fondues. Si non spécifié, toutes les colonnes qui ne sont pas définies comme id_vars seront fondues.
  • var_name : Spécifie le nom de la colonne qui stockera les noms de variables.
  • value_name : Spécifie le nom de la colonne qui stockera les valeurs.

Quand dois-je utiliser fondre ?

La fusion d'un dataframe est utile lorsque vous souhaitez :

  • Remodeler les données d'un format large à un format long.
  • Extraire des données spécifiques valeurs de plusieurs colonnes.
  • Créez un ensemble de données bien rangé pour analyse.

Comment puis-je résoudre des problèmes spécifiques liés à la fusion ?

Problème 1 : Transposer une trame de données

Pour transposer une trame de données (par exemple, convertir des colonnes en lignes), utilisez ce qui suit code :

df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')

Problème 2 : Sélection de colonnes spécifiques pour la fusion

Pour fondre uniquement des colonnes spécifiques, utilisez l'argument value_vars, comme ceci :

df.melt(id_vars=['Name', 'Age'], value_vars=['Math'], var_name='Subject', value_name='Grades')

Problème 3 : Regroupement et commande fondus data

Pour regrouper et trier les données fondues, vous pouvez utiliser les fonctions groupby() et sort_values() :

df.melt(id_vars=['Name', 'Age']) \
 .groupby('Grades') \
 .agg(', '.join) \
 .sort_values('Grades')

Problème 4 : Défusion d'une trame de données fondue

Pour reconvertir une trame de données fondue dans son format d'origine, utilisez la fonction pivot_table() fonction :

df.pivot_table("Grades", ['Name', 'Age'], 'Subject', aggfunc='first')

Problème 5 : Regrouper par noms et séparer les matières et les notes

Pour regrouper par noms et séparer les matières et les notes, fusionnez les colonnes à l'aide de melt( ), puis utilisez groupby() :

df.melt(id_vars=['Name', 'Age']) \
 .groupby('Name') \
 .agg(', '.join)

Problème 6 : Faire fondre l'ensemble dataframe

Pour fondre l'intégralité du dataframe, omettez l'argument value_vars :

df.melt(var_name='Column', value_name='Value')

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn