"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je insérer une liste dans une cellule spécifique dans une trame de données Python Pandas ?

Comment puis-je insérer une liste dans une cellule spécifique dans une trame de données Python Pandas ?

Publié le 2024-11-18
Parcourir:855

How Can I Insert a List into a Specific Cell in a Python Pandas Dataframe?

Insérer une liste dans une cellule dans un cadre de données Pandas Python

Insérer une liste dans une cellule spécifique dans un cadre de données Pandas peut être une tâche délicate. Explorons les différentes approches et les problèmes potentiels en fonction de l'exemple donné :

Problème d'origine :

Une trame de données 'df' avec la structure suivante :

    A  B
0  12  NaN
1  23  NaN

et une liste 'abc' contenant ['foo', 'bar']. Le but est d'insérer cette liste dans la cellule 1B.

Efforts :

  1. df.ix[1,'B'] = abc : renvoie une ValueError en raison de longueurs inégales des clés et des valeurs.
  2. df.ix[1,'B'] = [abc] : Insère une liste contenant les Liste 'abc' au lieu d'éléments individuels.
  3. df.ix[1,'B'] = ', '.join(abc) : insère une chaîne au lieu d'une liste.
  4. df .ix[1,'B'] = [', '.join(abc)] : insère une liste à un élément contenant les éléments joints string.

Solution :

La méthode obsolète set_value a été remplacée par at. L'utilisation de at garantit la définition d'une valeur unique :

df.at[1, 'B'] = ['foo', 'bar']

Considérations supplémentaires :

  • Assurez-vous que la colonne cible a dtype=object pour permettre l'insertion de liste.
  • La même approche peut être appliquée pour insérer des listes dans des cellules contenant des valeurs entières ou de chaîne.
  • Cependant, lors de l'insertion d'une liste dans une colonne contenant des types de données mixtes (entier et chaîne), une ValueError peut se produire. Cela peut être résolu en convertissant la colonne en dtype=object avant l'insertion.

Exemple mis à jour :

Insertion de la liste 'abc' dans df2.loc[ 1,'B'] et df3.loc[1,'B']:

df2 = pd.DataFrame({
    'A': [12],
    'B': [nan],
    'C': ['bla']
})

df3 = pd.DataFrame({
    'A': [12],
    'B': [nan],
    'C': ['bla bla'],
    'D': [['item1', 'item2'], [11, 12, 13]]
})

df2.loc[1, 'B'] = ['foo', 'bar']
df3.loc[1, 'B'] = ['foo', 'bar']
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3