Different methods to add column to existing DataFrame in pandas
In this tutorial we will discuss how to add column to existing pandas DataFrame using the following methods:
- Using
[]withNonevalue - Using
[]withConstantvalue - Using
[]withvalues - Using
insert()method - Using
assign()method - Using
[]withNaNvalue
Create pandas DataFrame with example data
DataFrame is a data structure used to store the data in two dimensional format. It is similar to table that stores the data in rows and columns. Rows represents the records/ tuples and columns refers to the attributes.
We can create the DataFrame by using**pandas.DataFrame()**method.
Syntax:
pandas.DataFrame(input_data,columns,index)Parameters:
It will take mainly three parameters
input_datais represents a list of datacolumnsrepresent the columns names for the dataindexrepresent the row numbers/values
We can also create a DataFrame using dictionary by skipping columns and indices.
Example: Python Program to create a dataframe for market data from a dictionary of food items by specifying the column names.
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# display the dataframe
print(dataframe)Output:
id name cost quantity
item-1 foo-23 ground-nut oil 567.00 1
item-2 foo-13 almonds 562.56 2
item-3 foo-02 flour 67.00 3
item-4 foo-31 cereals 76.09 2
Method 1 : Using [] with None value
In this method we are going to add a column by filling None values in
that column using [] .
Syntax:
dataframe['new_column']=Nonewhere,
- dataframe is the input dataframe
new_columnis the new column nameNoneis the value to be assigned to this new column for None values
Example: In this example we are going to add a column named stock and pass None values
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# add column - empty column
dataframe['stock']=None
# display dataframe
print(dataframe)Output:
id name cost quantity stock
item-1 foo-23 ground-nut oil 567.00 1 None
item-2 foo-13 almonds 562.56 2 None
item-3 foo-02 flour 67.00 3 None
item-4 foo-31 cereals 76.09 2 None
Method 2 : Using [] with Constant value
In this method we are going to add a column by filling constant value
in that column using [] .
Syntax:
dataframe['new_column']=valuewhere,
- dataframe is the input dataframe
new_columnis the new column name- value is the
constant valuewhich is same in the new column
Example:In this example we are going to add a column named stock and pass value - 45
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# add column - 45 value
dataframe['stock']=45
# display dataframe
print(dataframe)Output:
id name cost quantity stock
item-1 foo-23 ground-nut oil 567.00 1 45
item-2 foo-13 almonds 562.56 2 45
item-3 foo-02 flour 67.00 3 45
item-4 foo-31 cereals 76.09 2 45
Method 3 : Using [] with values
In this method we are going to add a column by filling
values from a list in that column using [] .
Syntax:
dataframe['new_column']=[value,............,value]where,
- dataframe is the input dataframe
new_columnis the new column name- value is the value from the
list of valuesassigned to each row in the column
Example:In this example we are going to add a column named stock and pass the list of values
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# add column - stock
dataframe['stock']=['yes','no','no','yes']
# display dataframe
print(dataframe)Output:
id name cost quantity stock
item-1 foo-23 ground-nut oil 567.00 1 yes
item-2 foo-13 almonds 562.56 2 no
item-3 foo-02 flour 67.00 3 no
item-4 foo-31 cereals 76.09 2 yes
Method 4 : Using insert() method
Here, we are using insert() function to insert a new column at
particular location.
Syntax:
dataframe.insert(location,"new_column",[value,.,value])where,
- 1. dataframe is the input dataframe
locationparameter will take integer value to locate the position of the new columnnew_columnis the name of the new column- last parameter is the
list of valuesto be assigned to the column created.
Example: In this example, we are going to add stock column and add values in last position
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# add column - stock at last position
dataframe.insert(4,"stock", ['yes','no','no','yes'])
# display dataframe
print(dataframe)Output:
id name cost quantity stock
item-1 foo-23 ground-nut oil 567.00 1 yes
item-2 foo-13 almonds 562.56 2 no
item-3 foo-02 flour 67.00 3 no
item-4 foo-31 cereals 76.09 2 yes
Method 5 : Using assign() method
assign() is used to add a new column by taking the column name and
values
Syntax:
dataframe.assign(new_column= [value,.....,value])where,
- dataframe is the input dataframe
new_columnis the new column name that takeslist of values
Example:In this example, we are going to add stock column and add values.
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# add column - stock
dataframe= dataframe.assign(stock= ['yes','no','no','yes'])
# display dataframe
print(dataframe)Output:
id name cost quantity stock
item-1 foo-23 ground-nut oil 567.00 1 yes
item-2 foo-13 almonds 562.56 2 no
item-3 foo-02 flour 67.00 3 no
item-4 foo-31 cereals 76.09 2 yes
Method 6 : Using [] with NaN value
In this method we are going to add a column by filling NaN values in
that column using [] .NaN stands for Not a Number. It is available
in numpy package, so we have to import numpy module
Syntax:
dataframe['new_column']=numpy.NaNwhere,
- dataframe is the input dataframe
new_columnis the new column namenumpy.NaNis the value to be assigned to this new column for NaN values
Example: In this example we are going to add a column named stock and pass NaN values.
# import the module
import pandas
import numpy
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# add column - stock
dataframe['stock']=numpy.nan
# display dataframe
print(dataframe)Output:
id name cost quantity stock
item-1 foo-23 ground-nut oil 567.00 1 NaN
item-2 foo-13 almonds 562.56 2 NaN
item-3 foo-02 flour 67.00 3 NaN
item-4 foo-31 cereals 76.09 2 NaN
Summary
In this article, we discussed how to add a new column in the existing
dataframe using [],insert(),assign() and with constant/NaN/None
values. We have seen that , it is possible to add the column at any
position by using insert() function.



![Pandas Pivot Simplified [In-Depth Tutorial]](/pandas-pivot/python-pandas-pivot_hu_dc49d2c8eb5c965b.webp)
![How to export Python Data Frame to SQL File? [SOLVED]](/how-to-export-python-data-frame-to-sql-file/python-to_sql_hu_70b9ee1fdd36d4a0.webp)
![Convert entire dataframe to lower case [SOLVED]](/lower-case-entire-dataframe/lower-case-entire-dataframe_hu_1bf7489e7caf1ce.webp)
![Convert DataFrame to CSV in Python [With Best Practices]](/convert-pandas-dataframe-to-csv/pandas_to_csv_hu_7e41177f25fde549.webp)

![How to use pandas.Series.map() [Practical Examples]](/panads-series-map-examples/pandas_map_hu_d809cf7fc81fe2f.webp)
![Add Empty Column(s) to Pandas DataFrame [6 Methods]](/add-empty-column-to-pandas-dataframe/pandas_add_empty_column_hu_107fb72230761dd4.webp)
![Pandas to_datetime() Usage Explained [Practical Examples]](/pandas-to-datetime-examples/pandas_to_datetime_hu_95ca8065821e3764.webp)