Maison >développement back-end >Tutoriel Python >Comment ajouter efficacement plusieurs colonnes à un DataFrame Pandas ?
Attribuer simultanément plusieurs colonnes au DataFrame Pandas
Dans le contexte de l'utilisation de dataframes dans Pandas, la question se pose de savoir comment ajouter efficacement plusieurs colonnes en une seule affectation.
Tentative initiale et ses inconvénients
De nombreux utilisateurs tentent naturellement d'utiliser la syntaxe suivante pour accomplir cette tâche :
df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]
Cependant , cette approche échoue car Pandas exige que le côté droit soit un DataFrame lors de la création de nouvelles colonnes avec la syntaxe de liste de colonnes.
Approches alternatives
Plusieurs solutions viables exister pour atteindre le résultat souhaité. Voici quelques-unes des approches recommandées :
1. Affectations sur une seule colonne avec déballage d'itérateur
df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3
2. Extension DataFrame avec Pandas.DataFrame()
df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)
3. Concaténation avec Pandas.concat
df = pd.concat( [ df, pd.DataFrame( [[np.nan, 'dogs', 3]], index=df.index, columns=['column_new_1', 'column_new_2', 'column_new_3'] ) ], axis=1 )
4. Rejoignez Pandas.join
df = df.join(pd.DataFrame( [[np.nan, 'dogs', 3]], index=df.index, columns=['column_new_1', 'column_new_2', 'column_new_3'] ))
5. Expansion du dictionnaire avec Pandas.join
df = df.join(pd.DataFrame( { 'column_new_1': np.nan, 'column_new_2': 'dogs', 'column_new_3': 3 }, index=df.index ))
6. Arguments à plusieurs colonnes avec .assign()
df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)
7. Création et attribution de colonnes
new_cols = ['column_new_1', 'column_new_2', 'column_new_3'] new_vals = [np.nan, 'dogs', 3] df = df.reindex(columns=df.columns.tolist() + new_cols) # add empty cols df[new_cols] = new_vals # multi-column assignment works for existing cols
8. Missions séparées
df['column_new_1'] = np.nan df['column_new_2'] = 'dogs' df['column_new_3'] = 3
Le choix de l'approche dépend des exigences spécifiques de l'utilisateur. Pour des raisons de simplicité et d'efficacité, des missions distinctes peuvent souvent être la solution privilégiée. Cependant, si l'on souhaite ajouter plusieurs colonnes avec le même type ou la même valeur, les autres approches offrent flexibilité et concision.
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!