Maison > développement back-end > Tutoriel Python > Comment la méthode `.explode()` de Pandas peut-elle transformer les colonnes basées sur une liste en lignes séparées ?

Comment la méthode `.explode()` de Pandas peut-elle transformer les colonnes basées sur une liste en lignes séparées ?

Linda Hamilton
Libérer: 2024-11-29 20:25:11
original
958 Les gens l'ont consulté

How Can Pandas' `.explode()` Method Transform List-Based Columns into Separate Rows?

Exploiter la méthode .explode() de Pandas pour décompresser les listes en lignes

Dans Pandas, gérer des DataFrames contenant des colonnes de listes peut être difficile lorsque vous souhaitez avoir chacune élément de liste représenté sous la forme d’une ligne distincte. C'est là que la méthode .explode() entre en jeu.

Pandas ≥ 0.25

Pour les versions Pandas 0.25 et supérieures, ce qui change la donne est le .explode( ) méthode. Il vous permet d'exploser une colonne de type liste en lignes séparées, la convertissant ainsi de sa forme longue en une forme large.

import pandas as pd

# Sample DataFrame
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)]
})

# Explode using .explode()
exploded_df = df.explode('samples')

# Reset index to be monotonically increasing (optional)
exploded_df = exploded_df.reset_index(drop=True)

print(exploded_df)

# Output:
#    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        1          3    1.18
# 7        2          1   -0.08
# 8        2          1   -4.22
# 9        2          1   -2.05
# 10       2          2    0.72
# 11       2          2    0.79
# 12       2          2    0.53
# 13       2          3    0.4
# 14       2          3   -0.32
# 15       2          3   -0.13
Copier après la connexion

Notez que .explode() fonctionne sur une seule colonne à la fois. Pour les colonnes contenant des types mixtes (par exemple, des listes et des scalaires), .explode() se comporte de manière judicieuse et préserve les listes vides et les NaN.

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