from assertions import *
from test_cells import *Assignment 7.1
Use the random package to create your own sample. Complete the following code snippet that creates a list of 15 tuples that consist of a participant number (1-15) and a reaction time between 0.1 and 5.8 (rounded with 2 decimals). Return the list of tuples that contains the ids and the reaction times.
Existing code
from random import Random
number_tuples = 15
random_seed = 10
def assignment_7_1(number_tuples, random_seed):
random = Random(random_seed)
sample = []
for p_id in range(number_tuples):
participant_id = str(p_id)
reaction_time = str(round(random.uniform(0.1, 5.8), 2))
# YOUR CODE
return sampleExpected return values (example)
[('0', '2.27'), ('1', '5.34'), ('2', '3.54'), ('3', '4.25'), ('4', '4.34'), ('5', '0.82'), ('6', '4.35'), ('7', '2.74'), ('8', '3.85'), ('9', '1.49'), ('10', '1.29'), ('11', '3.55'), ('12', '0.77'), ('13', '1.24'), ('14', '1.62')]# Code for assignment 7.1
from random import Random
number_tuples = 15
random_seed = 10
def assignment_7_1(number_tuples, random_seed):
random = Random(random_seed)
sample = []
for p_id in range(number_tuples):
participant_id = str(p_id)
reaction_time = str(round(random.uniform(0.1, 5.8), 2))
# YOUR CODE HERE
raise NotImplementedError()
return sample# Test for assignment 7.1
# Press Ctrl-Enter (PC) or Command-Enter (Mac) after changing the function
# above and pressing Ctrl-Enter (PC) or Command-Enter (Mac)
test_cell_7_1(assignment_7_1)# Assertion for assignment 7.1
check_assertion(assignment_7_1)Assignment 7.2
Use pandas to have a look at static/names_age_location.csv. Sort first by age and then by location. Return the sorted dataframe as dictionary using .to_dict()
CSV input
name,age,location
Peter,21,Rotterdam
Alex,45,Rotterdam
Sandra,65,Rotterdam
Eva,76,Utrecht
Adam,31,Utrecht
Fred,90,Utrecht
Klaudia,45,Utrecht
Helena,32,Nijmegen
Anna,33,Nijmegen
Xavier,33,Nijmegen
Yonne,54,Nijmegen
Timo,67,Nijmegen
Joeri,89,Amsterdam
Noralie,10,Amsterdam
Kevin,11,Amsterdam
Ruben,90,Amsterdam
Mick,1,Amsterdam
Tom,23,Groningen
Berta,54,Groningen
Expected order
name age location
16 Mick 1 Amsterdam
13 Noralie 10 Amsterdam
14 Kevin 11 Amsterdam
0 Peter 21 Rotterdam
17 Tom 23 Groningen
4 Adam 31 Utrecht
7 Helena 32 Nijmegen
8 Anna 33 Nijmegen
9 Xavier 33 Nijmegen
1 Alex 45 Rotterdam
6 Klaudia 45 Utrecht
18 Berta 54 Groningen
10 Yonne 54 Nijmegen
2 Sandra 65 Rotterdam
11 Timo 67 Nijmegen
3 Eva 76 Utrecht
12 Joeri 89 Amsterdam
15 Ruben 90 Amsterdam
5 Fred 90 Utrecht
Expected return value
{'name': {16: 'Mick', 13: 'Noralie', 14: 'Kevin', 0: 'Peter', 17: 'Tom', 4: 'Adam', 7: 'Helena', 8: 'Anna', 9: 'Xavier', 1: 'Alex', 6: 'Klaudia', 18: 'Berta', 10: 'Yonne', 2: 'Sandra', 11: 'Timo', 3: 'Eva', 12: 'Joeri', 15: 'Ruben', 5: 'Fred'}, 'age': {16: 1, 13: 10, 14: 11, 0: 21, 17: 23, 4: 31, 7: 32, 8: 33, 9: 33, 1: 45, 6: 45, 18: 54, 10: 54, 2: 65, 11: 67, 3: 76, 12: 89, 15: 90, 5: 90}, 'location': {16: 'Amsterdam', 13: 'Amsterdam', 14: 'Amsterdam', 0: 'Rotterdam', 17: 'Groningen', 4: 'Utrecht', 7: 'Nijmegen', 8: 'Nijmegen', 9: 'Nijmegen', 1: 'Rotterdam', 6: 'Utrecht', 18: 'Groningen', 10: 'Nijmegen', 2: 'Rotterdam', 11: 'Nijmegen', 3: 'Utrecht', 12: 'Amsterdam', 15: 'Amsterdam', 5: 'Utrecht'}}# Code for assignment 7.2
import pandas
def assignment_7_2():
# YOUR CODE HERE
raise NotImplementedError()
# Test for assignment 7.2
# Press Ctrl-Enter (PC) or Command-Enter (Mac) after changing the function
# above and pressing Ctrl-Enter (PC) or Command-Enter (Mac)
test_cell_7_2(assignment_7_2)# Assertion for assignment 7.2
check_assertion(assignment_7_2)Assignment 7.3
Create a new column for names_age_location using pandas that is True if the person lives in randstad and False if not. Return the boolean values in a list using .to_list(). Hint: Use data["location"].isin(randstad)
Expected input
["Amsterdam", "Delft", "Rotterdam", "Leiden", "Den Haag"]Expected data frame
name age location randstad
0 Peter 21 Rotterdam True
1 Alex 45 Rotterdam True
2 Sandra 65 Rotterdam True
3 Eva 76 Utrecht False
4 Adam 31 Utrecht False
5 Fred 90 Utrecht False
6 Klaudia 45 Utrecht False
7 Helena 32 Nijmegen False
8 Anna 33 Nijmegen False
9 Xavier 33 Nijmegen False
10 Yonne 54 Nijmegen False
11 Timo 67 Nijmegen False
12 Joeri 89 Amsterdam True
13 Noralie 10 Amsterdam True
14 Kevin 11 Amsterdam True
15 Ruben 90 Amsterdam True
16 Mick 1 Amsterdam True
17 Tom 23 Groningen False
18 Berta 54 Groningen FalseExpected return value
[True, True, True, False, False, False, False, False, False, False, False, False, True, True, True, True, True, False, False]# Code for assignment 7.3
import pandas
def assignment_7_3(randstad):
# YOUR CODE HERE
raise NotImplementedError()# Test for assignment 7.3
# Press Ctrl-Enter (PC) or Command-Enter (Mac) after changing the function
# above and pressing Ctrl-Enter (PC) or Command-Enter (Mac)
test_cell_7_3(assignment_7_3)# Assertion for assignment 7.3
check_assertion(assignment_7_3)Assignment 8.1
Use pandas to have a look at static/heights_temp.csv. Return how many people have a fever and how many are normal in a list using to_list().
CSV input
name,height,height_group,temperature,status
Jaimy,174,average,39,fever
Robin,180,average,35,normal
Jentje,189,tall,35,normal
Dominique,185,tall,39,fever
Sam,179,average,37,normal
Bo,188,tall,40,fever
Jamie,174,average,38,fever
Willy,174,average,34,normal
Ali-Indy,172,average,39,fever
Jos,180,average,37,normal
Jos-Jamie,190,tall,38,fever
Marijn,164,average,36,normal
Dani-Ali,175,average,39,fever
Jaimy-Robin,177,average,37,normal
Eliza-Jamie,170,average,37,normal
Senna-Eliza,169,average,41,fever
Senna-Ruth,179,average,41,fever
Bo-Indy,177,average,38,fever
Sam-Eliza,179,average,41,fever
Marijn-Ali,171,average,35,normal
Nicky-Nicky,174,average,39,fever
Dani,183,tall,34,normal
Indy-Indy,188,tall,35,normal
...
Expected return values
[47, 41]# Code for assignment 8.1
def assignment_8_1():
# YOUR CODE HERE
raise NotImplementedError()# Test for assignment 8.1
# Press Ctrl-Enter (PC) or Command-Enter (Mac) after changing the function
# above and pressing Ctrl-Enter (PC) or Command-Enter (Mac)
test_cell_8_1(assignment_8_1)# Assertion for assignment 8.1
check_assertion(assignment_8_1)Assignment 8.2
Use pandas to have a look at static/heights_temp.csv. Group the data by the height_group and return the average height of both groups in a list using to_list().
CSV input
name,height,height_group,temperature,status
Jaimy,174,average,39,fever
Robin,180,average,35,normal
Jentje,189,tall,35,normal
Dominique,185,tall,39,fever
Sam,179,average,37,normal
Bo,188,tall,40,fever
Jamie,174,average,38,fever
Willy,174,average,34,normal
Ali-Indy,172,average,39,fever
Jos,180,average,37,normal
Jos-Jamie,190,tall,38,fever
Marijn,164,average,36,normal
Dani-Ali,175,average,39,fever
Jaimy-Robin,177,average,37,normal
Eliza-Jamie,170,average,37,normal
Senna-Eliza,169,average,41,fever
Senna-Ruth,179,average,41,fever
Bo-Indy,177,average,38,fever
Sam-Eliza,179,average,41,fever
Marijn-Ali,171,average,35,normal
Nicky-Nicky,174,average,39,fever
Dani,183,tall,34,normal
Indy-Indy,188,tall,35,normal
...
Expected return values
[172.29850746268656, 185.0952380952381]# Code for assignment 8.2
import pandas
def assignment_8_2():
# YOUR CODE HERE
raise NotImplementedError()# Test for assignment 8.2
# Press Ctrl-Enter (PC) or Command-Enter (Mac) after changing the function
# above and pressing Ctrl-Enter (PC) or Command-Enter (Mac)
test_cell_8_2(assignment_8_2)# Assertion for assignment 8.2
check_assertion(assignment_8_2)Assignment 8.3
Use pandas to have a look at static/heights_temp.csv. Only have a look at participants over 170 and with fever. Return the standard deviation of the temperature of that group.
CSV input
name,height,height_group,temperature,status
Jaimy,174,average,39,fever
Robin,180,average,35,normal
Jentje,189,tall,35,normal
Dominique,185,tall,39,fever
Sam,179,average,37,normal
Bo,188,tall,40,fever
Jamie,174,average,38,fever
Willy,174,average,34,normal
Ali-Indy,172,average,39,fever
Jos,180,average,37,normal
Jos-Jamie,190,tall,38,fever
Marijn,164,average,36,normal
Dani-Ali,175,average,39,fever
Jaimy-Robin,177,average,37,normal
Eliza-Jamie,170,average,37,normal
Senna-Eliza,169,average,41,fever
Senna-Ruth,179,average,41,fever
Bo-Indy,177,average,38,fever
Sam-Eliza,179,average,41,fever
Marijn-Ali,171,average,35,normal
Nicky-Nicky,174,average,39,fever
Dani,183,tall,34,normal
Indy-Indy,188,tall,35,normal
...
Expected return values
0.9371024061116424# Code for assignment 8.3
def assignment_8_3():
# YOUR CODE HERE
raise NotImplementedError()# Test for assignment 8.3
# Press Ctrl-Enter (PC) or Command-Enter (Mac) after changing the function
# above and pressing Ctrl-Enter (PC) or Command-Enter (Mac)
test_cell_8_3(assignment_8_3)# Assertion for assignment 8.3
check_assertion(assignment_8_3)Assignment 9.1
Try to understand this code. Change the variable names. Add a docstring and comments for every line. Return the cleaned dictionary.
d = {"hello": ["hey","hi","good morning", "hello"], "bye": ["goodbye", "ciao", "bye"]}
def assignment_9_1(d):
for e in d:
if e in d[e]:
d[e].remove(e)
return d# Code for assignment 9.1
def assignment_9_1(d):
# YOUR CODE HERE
raise NotImplementedError()# Test for assignment 9.1
# Press Ctrl-Enter (PC) or Command-Enter (Mac) after changing the function
# above and pressing Ctrl-Enter (PC) or Command-Enter (Mac)
test_cell_9_1(assignment_9_1)# Assertion for assignment 9.1
check_assertion(assignment_9_1)Assignment 9.2
Try to understand this code. Add a docstring and comments for every line. Return the solution of the riddle.
sentence = "Yesterday you travelled to Okinawa University. Did you see that I was there as well? Do believe me, please! It is true! True!"
def assignment_9_2(s):
w = ""
for l in s:
if l.isupper():
w += l
return# Code for assignment 9.2
def assignment_9_2(s):
# YOUR CODE HERE
raise NotImplementedError()# Test for assignment 9.2
# Press Ctrl-Enter (PC) or Command-Enter (Mac) after changing the function
# above and pressing Ctrl-Enter (PC) or Command-Enter (Mac)
test_cell_9_2(assignment_9_2)# Assertion for assignment 9.2
check_assertion(assignment_9_2)Assignment 9.3 (Optional)
A researcher wrote a function to create a random number (based on a specific seed). The number is always part of the normal distribution with the mean x and the standard deviation y.
We tried to reuse this function and used a loop that creates a list of 8 numbers (list_numbers) that are part of the normal distribution (based on the seeds given in the list seeds).
Use the list numbers, to create a dataframe with pandas and return the mean of numbers.
Existing code
from random import Random
import pandas
seeds = [8890, 8891, 8899, 8810, 8850, 7780, 6655, 7879]
def assignment_9_3(seeds):
def normal(x, y, seed):
random = Random(seed)
g = random.gauss(x,y)
return round(g)
numbers = []
for seed in seeds:
numbers.append(normal(10, 2, seed))
# YOUR CODE
return mean# Code for assignment 9.3
def assignment_9_3(seeds):
# Hint1: Do not forget to name the column when you create a DataFrame (use columns=['NAME'])
# Hint2: Use float() to convert a numpy float to a python readable float
def normal(x, y, seed):
random = Random(seed)
g = random.gauss(x, y)
return round(g)
numbers = []
for seed in seeds:
numbers.append(normal(10, 2, seed))
# YOUR CODE HERE
raise NotImplementedError()
return mean# Test for assignment 9.3
# Press Ctrl-Enter (PC) or Command-Enter (Mac) after changing the function
# above and pressing Ctrl-Enter (PC) or Command-Enter (Mac)
test_cell_9_3(assignment_9_3)# Assertion for assignment 9.3
check_assertion(assignment_9_3)