Maison >développement back-end >Tutoriel Python >Comment décompresser une colonne de type liste en lignes distinctes dans un DataFrame ?
Question :
Comment pouvons-nous transformer un DataFrame cellule contenant une liste en lignes individuelles pour chaque valeur de cette liste ?
Exemple :
Considérez le DataFrame suivant :
name | opponent | nearest_neighbors |
---|---|---|
A.J. Price | 76ers | ['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia'] |
Notre objectif consiste à "exploser" la colonne les plus proches_neighbours, en créant une nouvelle ligne pour chaque valeur de la liste.
Réponse :
Dans la version pandas 0.25 et ultérieure, l'explosion( ) rend cette opération simple :
import pandas as pd df = (pd.DataFrame({'name': ['A.J. Price'] * 3, 'opponent': ['76ers', 'blazers', 'bobcats'], 'nearest_neighbors': [['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia']] * 3}) .set_index(['name', 'opponent'])) df.explode('nearest_neighbors')
Sortie :
name | opponent | nearest_neighbors |
---|---|---|
A.J. Price | 76ers | Zach LaVine |
A.J. Price | 76ers | Jeremy Lin |
A.J. Price | 76ers | Nate Robinson |
A.J. Price | 76ers | Isaia |
A.J. Price | blazers | Zach LaVine |
A.J. Price | blazers | Jeremy Lin |
A.J. Price | blazers | Nate Robinson |
A.J. Price | blazers | Isaia |
A.J. Price | bobcats | Zach LaVine |
A.J. Price | bobcats | Jeremy Lin |
A.J. Price | bobcats | Nate Robinson |
A.J. Price | bobcats | Isaia |
La méthode éclater() déroule efficacement chaque liste dans la colonne les plus proches_neighbours, créant une nouvelle ligne pour chaque valeur.
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!