
Lesson 3 Exercise 3 Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import pandas as pd # create the data frame from a list of tuples data = pd.DataFrame( [( 'Mike' , 7 , 10 , 5.5 ), ( 'Lisa' , 6.5 , 9 , 8 ), ( 'George' , 4 , 3 , 7 ), ( 'Maria' , 7 , 9.5 , 4 ), ( 'Frank' , 5 , 5 , 5 ) ] ) # set column names data.columns = [ 'Name' , 'Assignment 1' , 'Assignment 2' , 'Assignment 3' ] # set row names data.index = range ( 1 , len (data) + 1 ) # show table print (data) # add column with averages data[ 'Average' ] = (data[ 'Assignment 1' ] + data[ 'Assignment 2' ] + data[ 'Assignment 3' ]) / 3 # part a (all students with a1 score < 7) print (data[ data[ 'Assignment 1' ] < 7 ]) # part b (all students with a1 and a2 score > 6) print (data[ (data[ 'Assignment 1' ] > 6 ) & (data[ 'Assignment 2' ] > 6 )]) # part c (at least one assignment < 5) print ( data[ data[ [ 'Assignment 1' , 'Assignment 2' , 'Assignment 3' ] ]. min (axis = 1 ) < 5 ] ) # part d (name starts with M, only Name and Average columns) print (data [ data [ 'Name' ]. map ( lambda x: x.startswith( 'M' )) ] [ [ 'Name' , 'Average' ] ]) # sort by Name print (data.sort_values(by = [ 'Name' ])) |
If any of these steps is unclear to you, please ask for further explanation on the forums.