python – How to add an empty column to a dataframe?

python – How to add an empty column to a dataframe?

If I understand correctly, assignment should fill:

>>> import numpy as np
>>> import pandas as pd
>>> df = pd.DataFrame({A: [1,2,3], B: [2,3,4]})
>>> df
   A  B
0  1  2
1  2  3
2  3  4
>>> df[C] = 
>>> df[D] = np.nan
>>> df
   A  B C   D
0  1  2   NaN
1  2  3   NaN
2  3  4   NaN

To add to DSMs answer and building on this associated question, Id split the approach into two cases:

  • Adding a single column: Just assign empty values to the new columns, e.g. df[C] = np.nan

  • Adding multiple columns: Id suggest using the .reindex(columns=[...]) method of pandas to add the new columns to the dataframes column index. This also works for adding multiple new rows with .reindex(rows=[...]). Note that newer versions of Pandas (v>0.20) allow you to specify an axis keyword rather than explicitly assigning to columns or rows.

Here is an example adding multiple columns:

mydf = mydf.reindex(columns = mydf.columns.tolist() + [newcol1,newcol2])


mydf = mydf.reindex(mydf.columns.tolist() + [newcol1,newcol2], axis=1)  # version > 0.20.0

You can also always concatenate a new (empty) dataframe to the existing dataframe, but that doesnt feel as pythonic to me 🙂

python – How to add an empty column to a dataframe?

an even simpler solution is:

df = df.reindex(columns = header_list)                

where header_list is a list of the headers you want to appear.

any header included in the list that is not found already in the dataframe will be added with blank cells below.

so if

header_list = [a,b,c, d]

then c and d will be added as columns with blank cells

Leave a Reply

Your email address will not be published. Required fields are marked *