recherche
Maisondéveloppement back-endTutoriel PythonComment puis-je étendre les listes imbriquées dans les DataFrames Pandas en lignes distinctes ?

How Can I Expand Nested Lists in Pandas DataFrames into Separate Rows?

Démêler les listes imbriquées dans les dataframes Pandas : expansion des lignes

Lorsque vous travaillez avec des données dans les dataframes Pandas, vous pouvez rencontrer des colonnes contenant des listes, potentiellement s'étendant sur plusieurs valeurs. Pour faciliter l'analyse et la manipulation, il devient nécessaire de transformer ces listes en lignes distinctes. Ce processus, connu sous le nom de « formation longue » ou « expansion de ligne », permet à chaque élément de la liste d'occuper sa propre ligne.

Pour y parvenir, Pandas propose une méthode dédiée appelée .explode() , introduit dans la version 0.25. Cette méthode transforme de manière transparente la colonne contenant la liste spécifiée en une série de lignes, chaque élément devenant une ligne indépendante.

Mise en œuvre :

Pour employer le .explode(), spécifiez simplement le nom de la colonne que vous souhaitez développer. Par défaut, il créera de nouvelles lignes pour chaque élément de la colonne, tout en préservant les valeurs dans toutes les autres colonnes.

Par exemple, considérons un dataframe contenant une colonne « échantillons » avec des listes de valeurs :

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {'trial_num': [1, 2, 3, 1, 2, 3],
     'subject': [1, 1, 1, 2, 2, 2],
     'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
    }
)

Application de la méthode .explode() :

df.explode('samples')

Résultats en le dataframe suivant :

   subject  trial_num  sample
0        1          1    0.57
1        1          1   -0.83
2        1          1    1.44
3        1          2   -0.01
4        1          2    1.13
5        1          2    0.36
6        2          1   -0.08
7        2          1   -4.22
8        2          1   -2.05
9        2          2    0.72
10       2          2    0.79
11       2          2    0.53

Comme vous pouvez le constater, chaque élément de la liste a désormais sa propre ligne. Il convient de noter que, bien que la méthode déroule efficacement les listes, elle le fait pour une seule colonne à la fois.

Considérations supplémentaires :

  • La La méthode .explode() gère les colonnes mixtes contenant à la fois des listes et des valeurs scalaires, garantissant que les listes vides et les valeurs NaN sont préservées de manière appropriée.
  • Si une trame de données comporte plusieurs colonnes contenant une liste, vous pouvez utiliser des appels .explode() imbriqués pour les dérouler un par un.
  • Si vous désirez des l'ordre des colonnes, vous pouvez réajuster manuellement l'ordre des colonnes après avoir appelé .explode().
  • Réinitialisation de la l'index utilisant .reset_index(drop=True) est recommandé pour obtenir un index entier régulier.

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
Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Python?Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Python?Apr 26, 2025 am 12:22 AM

PythonarRaySSupportVariousOperations: 1) SpecingExtractsSubSets, 2) A SPENDANT / EXPENSEDADDDSELLESS, 3) INSERtingPlaceSelelementsAtSpecific Positions, 4) RemovingdeleteSelements, 5) Sorting / ReversingChangeSes

Dans quels types d'applications les tableaux Numpy sont-ils couramment utilisés?Dans quels types d'applications les tableaux Numpy sont-ils couramment utilisés?Apr 26, 2025 am 12:13 AM

NumpyArraysAressentialFor Applications est en train de réaliser des objets de manière numérique et une datamanipulation.

Quand choisiriez-vous d'utiliser un tableau sur une liste dans Python?Quand choisiriez-vous d'utiliser un tableau sur une liste dans Python?Apr 26, 2025 am 12:12 AM

Useanarray.arrayoveralistinpythonwendealing withhomogeneousdata, performance-criticalcode, orinterfacingwithccode.1) homogeneousdata: ArraySaveMemorywithTypelements.2) performance-criticalcode

Toutes les opérations de liste sont-elles prises en charge par des tableaux, et vice versa? Pourquoi ou pourquoi pas?Toutes les opérations de liste sont-elles prises en charge par des tableaux, et vice versa? Pourquoi ou pourquoi pas?Apr 26, 2025 am 12:05 AM

Non, NotallListOperationsResaSupportedByArrays, andviceVersa.1) ArraysDonotsUpportDynamicOperationsLIKEAPENDORINSERSERTWithoutresizing, qui oblige la performance.2) Listes de la glate-enconteConStanttimecomplexityfordirectAccessLikEArraysDo.

Comment accéder aux éléments dans une liste de python?Comment accéder aux éléments dans une liste de python?Apr 26, 2025 am 12:03 AM

TOACCESSELlementsInapyThonList, Use Indexing, Négatif Indexing, Specing, Oriteration.1) IndexingStarTsat0.2) négatif Indexing Accesssheend.3) SlicingExtractSports.4) itérationussesforloopsoReNumerate.

Comment les tableaux sont-ils utilisés dans l'informatique scientifique avec Python?Comment les tableaux sont-ils utilisés dans l'informatique scientifique avec Python?Apr 25, 2025 am 12:28 AM

ArraySinpython, en particulier Vianumpy, arecrucialinsciciencomputingfortheirefficiency andversatity.1) ils sont les opérations de data-analyse et la machineauning.2)

Comment gérez-vous différentes versions Python sur le même système?Comment gérez-vous différentes versions Python sur le même système?Apr 25, 2025 am 12:24 AM

Vous pouvez gérer différentes versions Python en utilisant Pyenv, Venv et Anaconda. 1) Utilisez PYENV pour gérer plusieurs versions Python: installer PYENV, définir les versions globales et locales. 2) Utilisez VENV pour créer un environnement virtuel pour isoler les dépendances du projet. 3) Utilisez Anaconda pour gérer les versions Python dans votre projet de science des données. 4) Gardez le Système Python pour les tâches au niveau du système. Grâce à ces outils et stratégies, vous pouvez gérer efficacement différentes versions de Python pour assurer le bon fonctionnement du projet.

Quels sont les avantages de l'utilisation de tableaux Numpy sur des tableaux Python standard?Quels sont les avantages de l'utilisation de tableaux Numpy sur des tableaux Python standard?Apr 25, 2025 am 12:21 AM

NumpyArrayShaveSeveralAdvantages OverStandardPyThonarRays: 1) TheaReMuchfasterDuetoc-bases Implementation, 2) Ils sont économisés par le therdémor

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit