Maison >développement back-end >Tutoriel Python >Comment diviser une colonne de listes Pandas en plusieurs colonnes ?

Comment diviser une colonne de listes Pandas en plusieurs colonnes ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-19 18:02:10295parcourir

How to Split a Pandas Column of Lists into Multiple Columns?

Diviser la colonne Pandas de listes en plusieurs colonnes

Problème

Considérons un DataFrame Pandas avec une colonne contenant des listes :

import pandas as pd

df = pd.DataFrame({"teams": [[["SF", "NYG"]] for _ in range(7)]})

       teams
0  [[SF, NYG]]
1  [[SF, NYG]]
2  [[SF, NYG]]
3  [[SF, NYG]]
4  [[SF, NYG]]
5  [[SF, NYG]]
6  [[SF, NYG]]

Pour transformer cette colonne en deux colonnes individuelles, suivez ce qui suit étapes :

Solution

  1. Créer une liste de valeurs à l'aide de to_list() :
import pandas as pd

d1 = {'teams': [['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],
                ['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG']]}
df2 = pd.DataFrame(d1)
print (df2)
       teams
0  [SF, NYG]
1  [SF, NYG]
2  [SF, NYG]
3  [SF, NYG]
4  [SF, NYG]
5  [SF, NYG]
6  [SF, NYG]
  1. Extraire des colonnes à l'aide de l'affectation :

Attribuer un nouveau DataFrame avec les colonnes souhaitées :

df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG
  1. Créer un nouveau DataFrame pour le résultat :

Alternativement, un nouveau DataFrame peut être créé séparément :

df3 = pd.DataFrame(df2['teams'].to_list(), columns=['team1','team2'])
print (df3)
  team1 team2
0    SF   NYG
1    SF   NYG
2    SF   NYG
3    SF   NYG
4    SF   NYG
5    SF   NYG
6    SF   NYG

Remarque : Utilisation apply(pd.Series) pour cette opération peut être nettement plus lente que les méthodes décrites ci-dessus.

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