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
Barbara Streisandoriginal
2024-10-29 10:34:02274parcourir

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>

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>

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]}

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