Maison > développement back-end > Tutoriel Python > Comment réussir à insérer une liste dans une cellule DataFrame en Python ?

Comment réussir à insérer une liste dans une cellule DataFrame en Python ?

Patricia Arquette
Libérer: 2024-10-29 18:50:02
original
861 Les gens l'ont consulté

How to Successfully Insert a List into a DataFrame Cell in Python?

Insérer une liste dans une cellule d'un DataFrame

Lorsque vous traitez des données clairsemées dans les pandas Python, il peut être difficile d'insérer des listes dans des cellules spécifiques. Tenter de telles opérations à l'aide de méthodes courantes telles que df.ix[1,'B'] = abc entraîne souvent des erreurs dues à des longueurs de clé incompatibles.

Solutions alternatives et limitations

Tentatives de contournement du erreur en plaçant la liste entre crochets supplémentaires (par exemple, df.ix[1,'B'] = [abc]) ou en utilisant des représentations sous forme de chaîne (par exemple, df.ix[1,'B'] = ', '.join (abc)) ne sont pas satisfaisants, car ils introduisent des éléments supplémentaires ou modifient la structure de données prévue.

Utiliser df.at pour l'insertion de liste

Une approche plus efficace consiste à utiliser df.at au lieu de df.ix ou df.loc. df.at cible spécifiquement une seule cellule, éliminant ainsi l'ambiguïté qui peut conduire aux erreurs susmentionnées.

<code class="python">import pandas as pd

# Create a dataframe with mixed data types
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': ['x', 'y', 'z']})

# Insert a list into cell 1B
df.at[1, 'B'] = ['m', 'n']

print(df)</code>
Copier après la connexion

Cette opération insère avec succès ['m', 'n'] dans la cellule 1B sans aucune erreur.

Assurer la compatibilité des types de colonnes

Il est important de noter que la colonne dans laquelle vous avez l'intention d'insérer la liste doit avoir son type défini sur « objet ». Si la colonne a un type différent, tel que « int64 », une erreur se produira. Pour résoudre ce problème, vous pouvez convertir le type de la colonne avant de tenter l'insertion :

<code class="python">df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [1,2,3]})
df['B'] = df['B'].astype('object')

# Now, list insertion will work as expected
df.at[1, 'B'] = [1, 2, 3]</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