Maison > Article > développement back-end > Comment réussir à insérer une liste dans une cellule DataFrame en Python ?
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.
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.
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>
Cette opération insère avec succès ['m', 'n'] dans la cellule 1B sans aucune erreur.
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>
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!