saga
saga

Reputation: 755

How to add multiple columns to dataframe by function

If I have a df such as this:

   a  b
0  1  3
1  2  4

I can use df['c'] = '' and df['d'] = -1 to add 2 columns and become this:

   a  b c  d
0  1  3   -1
1  2  4   -1

How can I make the code within a function, so I can apply that function to df and add all the columns at once, instead of adding them one by one seperately as above? Thanks

Upvotes: 1

Views: 339

Answers (2)

Samer Ayoub
Samer Ayoub

Reputation: 1001

def update_df(a_df, new_cols_names, new_cols_vals):
  for n, v in zip(new_cols_names, new_cols_vals):
    a_df[n] = v

update_df(df, ['c', 'd', 'e'], ['', 5, 6])

Upvotes: 0

oppressionslayer
oppressionslayer

Reputation: 7204

Create a dictionary:

dictionary= { 'c':'', 'd':-1 }

def new_columns(df, dictionary):
    return df.assign(**dictionary)

then call it with your df:

df = new_columns(df, dictionary)

or just ( if you don't need a function call, not sure what your use case is) :

df.assign(**dictionary)

Upvotes: 2

Related Questions