Maison >développement back-end >Tutoriel Python >Comment regrouper des données Excel par colonne et créer un dictionnaire de listes en Python ?

Comment regrouper des données Excel par colonne et créer un dictionnaire de listes en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 03:17:02574parcourir

How to Group Excel Data by Column and Create a Dictionary of Lists in Python?

Résultats Excel GroupBy vers dictionnaire de listes

Vous disposez d'une feuille de calcul Excel avec des données organisées en trois colonnes : Colonne1, Colonne2 et Colonne3. Vous souhaitez extraire ces données et les regrouper par Colonne1 afin que chaque valeur unique de Colonne1 corresponde à une liste de valeurs de Colonne3.

Code :

Vous avez J'ai déjà essayé d'utiliser la fonction groupby() sur Column1, mais la sortie contient des indices au lieu des valeurs réelles de Column3. Pour corriger cela, vous devez préciser sur quelle colonne vous souhaitez regrouper et quelle colonne vous souhaitez extraire :

<code class="python">df = pandas.read_excel(r"e:\test_data.xlsx", sheetname='mySheet', parse_cols=['Column1', 'Column3'])
result = df.groupby('Column1')['Column3'].apply(list).to_dict()</code>

Explication :

  • groupby () regroupe les données selon les valeurs de la colonne 1.
  • apply(list) applique la fonction de liste à chaque sous-groupe, convertissant les valeurs de la colonne 3 en un list.
  • to_dict() convertit les données groupées en un dictionnaire, où les clés sont les valeurs de la colonne 1 et les valeurs sont les listes de valeurs de la colonne 3.

Code alternatif :

Une autre façon d'obtenir le même résultat consiste à utiliser un dictionnaire compréhension :

<code class="python">result = {k: list(v) for k, v in df.groupby('Column1')['Column3']}</code>

Sortie :

Les deux extraits de code produisent le résultat souhaité :

{0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}

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