Lorsqu'il s'agit de pandas DataFrames, il est parfois nécessaire de « désemboîter » ou « exploser » les colonnes qui contiennent des listes en plusieurs lignes. Cependant, cela peut être une opération coûteuse en termes de calcul, en particulier pour les grands ensembles de données.
Pour les versions 1.3 et supérieures de pandas, il existe une fonction intégrée appelée DataFrame.explode qui vous permet de dissocier plusieurs colonnes simultanément. Cette fonction nécessite que toutes les colonnes de la liste aient la même longueur. Pour l'utiliser :
df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
Pour les anciennes versions de pandas, une approche légèrement plus complexe est requise :
df.set_index(['A']).apply(pd.Series.explode).reset_index()
Les deux méthodes fournir des solutions efficaces, set_index et explosive étant légèrement plus rapides que DataFrame.explode. Le tableau suivant montre la comparaison des performances :
Method | Time (seconds) |
---|---|
DataFrame.explode | 0.00259 |
Set index and explode | 0.00127 |
Stacking approach | 0.120 |
Bien que cette question ait été initialement marquée comme un doublon, elle souligne spécifiquement la nécessité d'une méthode efficace capable de gérer de grandes ensembles de données. Les réponses à la question en double n'ont pas répondu de manière adéquate à cette exigence.
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!