How to Add a Column to a Pandas DataFrame


You can use the assign() function to add a new column to the end of a pandas DataFrame:

df = df.assign(col_name=[value1, value2, value3, ...])

And you can use the insert() function to add a new column to a specific location in a pandas DataFrame:

df.insert(position, 'col_name', [value1, value2, value3, ...])

The following examples show how to use this syntax in practice with the following pandas DataFrame:

import pandas as pd

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

#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
5	23	9	5

Example 1: Add New Column to End of DataFrame

The following code shows how to add a new column to the end of the DataFrame:

#add 'steals' column to end of DataFrame
df = df.assign(steals=[2, 2, 4, 7, 4, 1])

#view DataFrame
df

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

Example 2: Add Multiple Columns to End of DataFrame

The following code shows how to add multiple new columns to the end of the DataFrame:

#add 'steals' and 'blocks' columns to end of DataFrame
df = df.assign(steals=[2, 2, 4, 7, 4, 1],
               blocks=[0, 1, 1, 3, 2, 5])

#view DataFrame
df

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

Example 3: Add New Column Using Existing Column

The following code shows how to add a new column to the end of the DataFrame, based on the values in an existing column:

#add 'half_pts' to end of DataFrame
df = df.assign(half_pts=lambda x: x.points / 2)

#view DataFrame
df

        points	assists	rebounds half_pts
0	25	5	11	 12.5
1	12	7	8	 6.0
2	15	7	10	 7.5
3	14	9	6	 7.0
4	19	12	6	 9.5
5	23	9	5	 11.5

Example 4: Add New Column in Specific Location of DataFrame

The following code shows how to add a new column by inserting it into a specific location in the DataFrame:

#add 'steals' to column index position 2 in DataFrame
df.insert(2, 'steals', [2, 2, 4, 7, 4, 1])

#view DataFrame
df

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

Additional Resources

How to Change the Order of Columns in Pandas
How to Rename Columns in Pandas
How to Sort Columns by Name in Pandas

Leave a Reply

Your email address will not be published.