Pandas DataFrame: Insert a new column in existing DataFrame
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.
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.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics