Maison >développement back-end >Tutoriel Python >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 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-29 13:34:29458parcourir

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 Python Pandas

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 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 la longueur inégale des clés et des valeurs.
  2. df.ix[1,'B'] = [abc] : insère une liste contenant la 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 la chaîne jointe.

Solution :

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

<code class="python">df.at[1, 'B'] = ['foo', 'bar']</code>

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 des chaînes.
  • 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'] :

<code class="python">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']</code>

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