18 votes

Comment utiliser pandas df.assign() avec des noms de variables ?

Je veux ajouter une nouvelle colonne dans un cadre de données avec des valeurs provenant d'un autre cadre de données. Le nom de ma nouvelle colonne est une variable et je ne peux pas le coder en dur.

new_column = "my_new_column_name" 
df = df.assign(new_column=other_df['Column1'].values)

Le problème est que j'obtiens une nouvelle colonne nommée new_column . Ce que j'attends, c'est une colonne nommée my_new_column_name

Quelqu'un peut-il suggérer une solution à ce problème ?

19voto

Chris Points 2347

Vous pouvez faire un dict et déballer :

Étant donné que df :

print(df)
   col1  col2
0     1    10
1     2    20
2     3    30

new_column = "my_new_column_name" 
df = df.assign(**{new_column: df['col1'].values})
print(df)

Sortie :

   col1  col2  my_new_column_name
0     1    10                   1
1     2    20                   2
2     3    30                   3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X