Pandas DataFrame: Insert a new column in existing DataFrame
20. Inserting a New Column
Write a Pandas program to insert a new column in existing DataFrame.
Sample DataFrame:
Sample Python dictionary data and list labels:
exam_data = {'name': ['Anastasia', 'Dima', 'Katherine', 'James', 'Emily', 'Michael', 'Matthew', 'Laura', 'Kevin', 'Jonas'],
'score': [12.5, 9, 16.5, np.nan, 9, 20, 14.5, np.nan, 8, 19],
'attempts': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
'qualify': ['yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
Sample Solution :
Python Code :
import pandas as pd
import numpy as np
exam_data = {'name': ['Anastasia', 'Dima', 'Katherine', 'James', 'Emily', 'Michael', 'Matthew', 'Laura', 'Kevin', 'Jonas'],
'score': [12.5, 9, 16.5, np.nan, 9, 20, 14.5, np.nan, 8, 19],
'attempts': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
'qualify': ['yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
df = pd.DataFrame(exam_data , index=labels)
print("Original rows:")
print(df)
color = ['Red','Blue','Orange','Red','White','White','Blue','Green','Green','Red']
df['color'] = color
print("\nNew DataFrame after inserting the 'color' column")
print(df)
Sample Output:
Original rows: attempts name qualify score a 1 Anastasia yes 12.5 b 3 Dima no 9.0 c 2 Katherine yes 16.5 d 3 James no NaN e 2 Emily no 9.0 f 3 Michael yes 20.0 g 1 Matthew yes 14.5 h 1 Laura no NaN i 2 Kevin no 8.0 j 1 Jonas yes 19.0 New DataFrame after inserting the 'color' column attempts name qualify score color a 1 Anastasia yes 12.5 Red b 3 Dima no 9.0 Blue c 2 Katherine yes 16.5 Orange d 3 James no NaN Red e 2 Emily no 9.0 White f 3 Michael yes 20.0 White g 1 Matthew yes 14.5 Blue h 1 Laura no NaN Green i 2 Kevin no 8.0 Green j 1 Jonas yes 19.0 Red
Explanation:
The above code creates a Pandas DataFrame called ‘df’ with columns 'name', 'score', 'attempts', and 'qualify' using the provided ‘exam_data’ dictionary and ‘labels’ list as the index.
df['color'] = color: This line creates a new column called 'color' using the ‘color’ list. The 'color' column is appended to the end of the DataFrame and contains the colors assigned to each name. The colors are assigned based on the order of the names in the ‘exam_data’ dictionary.
Finally print() function prints the updated DataFrame.
For more Practice: Solve these Related Problems:
- Write a Pandas program to insert a new column into an existing DataFrame at a specified position and then display the updated DataFrame.
- Write a Pandas program to add a new column with a default value and then update this column conditionally based on other column values.
- Write a Pandas program to insert a new column with values derived from a mathematical operation on existing columns.
- Write a Pandas program to add a new column, then rearrange the DataFrame columns to move the new column to the front.
Python-Pandas Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Pandas program to delete the 'attempts' column from the DataFrame.
Next: Write a Pandas program to iterate over rows in a DataFrame.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.