How to Add an Empty Column to a Pandas DataFrame

To add an empty column to a Pandas DataFrame, you can use the “assign” method and pass in a column label and value of None. This will create a new column in the DataFrame with the specified label and no data. You can then populate the column with data as needed. Additionally, you can use the “insert” method to add an empty column at a specified position in the DataFrame.


Occasionally you may want to add an empty column to a pandas DataFrame.

Fortunately this is fairly easy to do and this tutorial shows several examples of how to do so using the following pandas DataFrame:

import numpy as np
import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]})

#view DataFrame
df

	points	assists	rebounds
0	25	5	11
1	12	7	8
2	15	7	10
3	14	9	6
4	19	12	6

Example 1: Add an Empty Column Using “”

The first way to add an empty column is to use quotations as follows:

#add new column titled 'steals' 
df['steals'] = ""

#view DataFrame
df

	points	assists	rebounds steals
0	25	5	11	
1	12	7	8	
2	15	7	10	
3	14	9	6	
4	19	12	6	

Example 2: Add an Empty Column Using Numpy

Another way to add an empty column is to use np.nan as follows:

#add new column titled 'steals'
df['steals'] = np.nan

#view DataFrame
df

        points	assists	rebounds steals
0	25	5	11	 NaN
1	12	7	8	 NaN
2	15	7	10	 NaN
3	14	9	6	 NaN
4	19	12	6	 NaN

Example 3: Add an Empty Column Using Pandas Series

Another way to add an empty column is to use pd.Series() as follows:

#add new column titled 'steals'
df['steals'] = pd.Series()

#view DataFrame
df

        points	assists	rebounds steals
0	25	5	11	 NaN
1	12	7	8	 NaN
2	15	7	10	 NaN
3	14	9	6	 NaN
4	19	12	6	 NaN

Example 4: Add an Empty Column Using Pandas Insert

Another way to add an empty column is to use the insert() function as follows:

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]})

#insert empty column titled 'steals' into index position 2
df.insert(2, "steals", np.nan)

#view DataFrame
df

	points	assists	steals	rebounds
0	25	5	NaN	11
1	12	7	NaN	8
2	15	7	NaN	10
3	14	9	NaN	6
4	19	12	NaN	6

The nice part about this approach is that you can insert the empty column into any position you’d like in the DataFrame.

Example 5: Add Multiple Empty Columns at Once

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]})

#add empty columns titled 'empty1' and 'empty2'
df = df.reindex(columns = df.columns.tolist() + ['empty1', 'empty2'])

#view DataFrame
df

        points	assists	rebounds empty1	empty2
0	25	5	11	 NaN	NaN
1	12	7	8	 NaN	NaN
2	15	7	10	 NaN	NaN
3	14	9	6	 NaN	NaN
4	19	12	6	 NaN	NaN

You can find more Python tutorials .

x