How to add an empty column to a dataframe?
To add to DSM's answer and building on this associated question, I'd 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: I'd suggest using the
.reindex(columns=[...])method of pandas to add the new columns to the dataframe's 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
axiskeyword rather than explicitly assigning to
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 doesn't feel as pythonic to me :)
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.
header_list = ['a','b','c', 'd']
then c and d will be added as columns with blank cells