Dans la manipulation de données Pandas, l'ajout efficace de plusieurs nouvelles colonnes à un DataFrame peut être une tâche qui nécessite une solution élégante. Bien que l'approche intuitive consistant à utiliser la syntaxe de liste de colonnes avec un signe égal puisse sembler simple, elle peut conduire à des résultats inattendus.
Comme illustré dans l'exemple fourni, la syntaxe suivante ne parvient pas à créer les nouvelles colonnes comme prévu :
df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]
Cela est dû au fait que Pandas exige que le côté droit de l'affectation soit un DataFrame lors de l'utilisation de la syntaxe de liste de colonnes. Les valeurs ou listes scalaires ne sont pas compatibles avec cette approche.
Plusieurs méthodes alternatives offrent des solutions viables pour ajouter plusieurs colonnes simultanément :
Méthode 1 : affectations individuelles À l'aide du déballage de l'itérateur
df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3
Méthode 2 : développer une seule ligne pour faire correspondre l'index
df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)
Méthode 3 : combiner avec un DataFrame temporaire à l'aide de pd.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
)
Méthode 4 : combiner avec un DataFrame temporaire à l'aide de .join
df = df.join(pd.DataFrame(
[[np.nan, 'dogs', 3]],
index=df.index,
columns=['column_new_1', 'column_new_2', 'column_new_3']
))
Méthode 5 : Utiliser le dictionnaire pour le DataFrame temporaire
df = df.join(pd.DataFrame(
{
'column_new_1': np.nan,
'column_new_2': 'dogs',
'column_new_3': 3
}, index=df.index
))
Méthode 6 : utilisez .assign() avec plusieurs arguments de colonnes
df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)
Méthode 7 : créer des colonnes, puis Attribuer des valeurs
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
Méthode 8 : affectations séquentielles multiples
df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3
Le choix de la méthode la plus appropriée dépendra de facteurs tels que la taille du DataFrame, le nombre de nouvelles colonnes à ajouter et les exigences de performances de la tâche. Néanmoins, ces techniques offrent aux utilisateurs de Pandas diverses options pour ajouter efficacement plusieurs colonnes à leurs DataFrames.
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