Explosion de listes imbriquées en lignes individuelles dans une trame de données Pandas
Dans le domaine de la manipulation de données avec des pandas, il est souvent nécessaire de restructurer les données stockés sous forme de listes imbriquées dans des lignes individuelles. Considérons une trame de données où la colonne "nearest_neighbours" contient des listes de valeurs. L'objectif est "d'exploser" ces listes, en créant des lignes distinctes pour chaque valeur dans la liste.
Pandas 0.25 simplifie l'éclatement de la liste avec la méthode éclater()
Pour les pandas Dans les versions 0.25 et ultérieures, le développement des listes en colonnes est considérablement simplifié avec l'introduction de la méthode éclater(). Pour démontrer sa fonctionnalité, recréons l'exemple de dataframe :
import pandas as pd # Original DataFrame df = pd.DataFrame({'name': ['A.J. Price'] * 3, 'opponent': ['76ers', 'blazers', 'bobcats'], 'nearest_neighbors': [['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia']] * 3}) # Set the index for easier reference df = df.set_index(['name', 'opponent'])
Explosion des listes imbriquées
À l'aide de la méthode exploser(), nous pouvons diviser les "nearest_neighbours" colonne par ses éléments de liste, en créant des lignes distinctes pour chaque valeur :
# Explode the list-like column df_exploded = df.explode('nearest_neighbors')
Sortie après explosion
print(df_exploded)
nearest_neighbors name opponent A.J. Price 76ers Zach LaVine 76ers Jeremy Lin 76ers Nate Robinson 76ers Isaia blazers Zach LaVine blazers Jeremy Lin blazers Nate Robinson blazers Isaia bobcats Zach LaVine bobcats Jeremy Lin bobcats Nate Robinson bobcats Isaia
Comme vous pouvez le voir, chaque valeur de la liste dans la colonne "nearest_neighbors" est désormais représenté comme une ligne distincte dans son index d'adversaire correspondant.
Autres méthodes d'expansion de liste
Pour les versions pandas antérieures à 0.25, il existait d'autres approches pour étendre les listes en colonnes. Ces méthodes nécessitaient une combinaison d'opérations telles que l'application, lambda et la compréhension de liste. Cependant, avec l’introduction de la méthode explosive(), ces approches plus complexes ne sont plus nécessaires.
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!