Maison > développement back-end > Tutoriel Python > Comment regrouper un DataFrame par colonne et le convertir en dictionnaire de listes en Python ?

Comment regrouper un DataFrame par colonne et le convertir en dictionnaire de listes en Python ?

Barbara Streisand
Libérer: 2024-10-29 10:34:02
original
197 Les gens l'ont consulté

How to Group a DataFrame by a Column and Convert It to a Dictionary of Lists in Python?

GroupBy et convertir DataFrame en dictionnaire de listes

Étant donné un fichier Excel contenant des données structurées, le but est d'extraire les données, de les regrouper par une colonne spécifique et stockez-la dans un dictionnaire Python avec des listes comme valeurs. Le format des données dans la feuille Excel est :

Column1 Column2 Column3
0 23 1
1 5 2
1 2 3
1 19 5
2 56 1
2 22 2
3 2 4
3 14 5
4 59 1
5 44 1
5 1 2
5 87 3

Solution 1 : groupby.apply().to_dict()

Pour convertir les données dans le dictionnaire souhaité format, suivez ces étapes :

  1. Lisez le fichier Excel dans un DataFrame à l'aide de pandas.read_excel().
  2. Regroupez le DataFrame par Column1 à l'aide de groupby().
  3. Extrayez les valeurs de la colonne 3 et appliquez la liste à chaque groupe pour les convertir en listes.
  4. Convertissez le résultat groupé en dictionnaire à l'aide de to_dict().
<code class="python">import pandas as pd

excel = pd.read_excel(r"e:\test_data.xlsx", sheetname='mySheet', parse_cols='A,C')
result = excel.groupby('Column1')['Column3'].apply(list).to_dict()

print(result)</code>
Copier après la connexion

Solution 2 : Compréhension du dictionnaire

Vous pouvez également utiliser une compréhension du dictionnaire pour obtenir le même résultat :

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

print(result)</code>
Copier après la connexion

Le résultat des deux solutions sera :

{0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal