Maison >développement back-end >Tutoriel Python >Comment regrouper les lignes DataFrame et créer des listes de valeurs à l'aide de Pandas ?

Comment regrouper les lignes DataFrame et créer des listes de valeurs à l'aide de Pandas ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-17 20:54:10884parcourir

How to Group DataFrame Rows and Create Lists of Values Using Pandas?

Comment transformer des lignes de dataframe en listes groupées à l'aide de Pandas Groupby

Problème :

Donné un DataFrame avec plusieurs colonnes, le but est de regrouper les lignes en fonction d'une colonne spécifique (par exemple, la première colonne) et rassemblez les valeurs d'une autre colonne (par exemple, la deuxième colonne) dans des listes au sein de chaque groupe. Par exemple :

DataFrame d'origine :

a b
A 1
A 2
B 5
B 5
B 4
C 6

Résultat souhaité :

a new
A [1, 2]
B [5, 5, 4]
C [6]

Solution :

Pour y parvenir résultat, la fonction groupby des pandas peut être utilisée avec la méthode apply() pour convertir chaque groupe en un list.

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'a': ['A', 'A', 'B', 'B', 'B', 'C'], 'b': [1, 2, 5, 5, 4, 6]})

# Group by the "a" column and create lists of "b" values
grouped_list = df.groupby('a')['b'].apply(list)

# Reset the index to obtain a DataFrame
df1 = grouped_list.reset_index(name='new')

Explication :

  • groupby('a') : regroupe le DataFrame par la colonne "a" .
  • apply(list) : applique la fonction list() à chaque groupe, convertissant les valeurs "b" en listes.
  • reset_index(name='new') : Réinitialise l'index et attribue le nouveau nom de colonne "new" aux listes groupées.

Le DataFrame résultant, df1, contiendra les listes groupées souhaitées :

   a        new
0  A     [1, 2]
1  B  [5, 5, 4]
2  C        [6]

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