w3resource

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.



Follow us on Facebook and Twitter for latest update.