Comment insérer efficacement une liste dans une cellule spécifique d'un Pandas DataFrame ?

DDD
Libérer: 2024-10-30 07:47:28
original
621 Les gens l'ont consulté

How do I effectively insert a list into a specific cell of a Pandas DataFrame?

Pandas Python : insertion d'une liste dans une cellule

Lorsque vous travaillez avec des dataframes, il est souvent nécessaire d'ajuster le contenu des cellules. Dans ce cas, la tâche consiste à insérer une liste spécifique, « abc », dans la cellule 1B d'une trame de données. Diverses tentatives ont été faites, mais chacune a rencontré ses propres défis.

Initialement, une tentative d'attribuer la liste entière directement à la cellule à l'aide de df.ix[1,'B'] = abc a entraîné une ValueError en raison d'une inadéquation entre le nombre de clés et de valeurs. Utiliser df.ix[1,'B'] = [abc] crée à la place une liste avec la liste 'abc' comme seul élément, ce qui n'est pas souhaité.

Conversion de la liste en chaîne à l'aide de df. ix[1,'B'] = ', '.join(abc) produit le contenu prévu sous forme de chaîne plutôt que de liste. De même, l'utilisation de df.ix[1,'B'] = [', '.join(abc)] crée une liste avec un seul élément de chaîne.

Tentatives ultérieures d'insertion de la liste dans des dataframes avec des les types de colonnes, impliquant à la fois des entiers et des chaînes, rencontrent une erreur. Cela suggère que le problème réside dans les types de données mixtes des colonnes.

Pour résoudre ce problème, il est recommandé d'utiliser l'attribut at au lieu de loc. Cette méthode fait systématiquement référence à une valeur unique, évitant ainsi les problèmes rencontrés avec loc. De plus, s'assurer que la colonne dans laquelle est insérée a dtype=object évite d'autres erreurs.

Par exemple, le code suivant insère avec succès la liste 'abc' dans la cellule 1B du dataframe df2 :

import pandas as pd

abc = ['foo', 'bar']
df2 = pd.DataFrame(data={'A': [12, 23], 'B': [None, None], 'C': ['bla', 'bla bla']})

df2['B'] = df2['B'].astype('object')  # Ensure 'B' has dtype=object
df2.at[1, 'B'] = abc

print(df2)
Copier après la connexion

Sortie :

   A   B         C
0  12  NaN      bla
1  23  [foo, bar]  bla bla
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!