w3resource logo

:

Python Exercises

Python Pandas: Insert a new column with given values for each column

Python Pandas: DateFrame Exercise-16 with Solution

Write a Python program to sort the data frame first by 'name' in descending order, then by 'score' in ascending order.

Sample DateFrame:
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']
Values for each column will be:
name : ‘Suresh’, score: 15.5, attempts: 1, qualify: ‘yes’, label: ‘k’

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("Orginal rows:")
print(df)
df.sort_values(by=['name', 'score'], ascending=[False, True])
print("Sort the data frame first by ‘name’ in descending order, then by ‘score’ in ascending order:")
print(df)

Sample Output:

Orginal 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                                  
Sort the data frame first by ‘name’ in descending order, then by ‘score
’ in ascending order:                                                  
   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                         

Python Code Editor:

Improve this sample solution and post your code through Disqus