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
Libérer: 2024-10-29 13:34:29
original
456 Les gens l'ont consulté

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
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal