"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 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 ?

Publié le 2024-11-07
Parcourir:482

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

Insertion d'une liste dans une cellule d'un DataFrame

Lorsque vous traitez des données éparses 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é pouvant conduire aux erreurs susmentionnées.

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)

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 :

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]
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