From 4e63344df63320781f2b1e36d419d529972cddd4 Mon Sep 17 00:00:00 2001 From: John Miller Date: Thu, 26 Dec 2024 10:49:35 -0600 Subject: [PATCH 01/14] Update ex5.py q3 --- learntools/sql/ex5.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/learntools/sql/ex5.py b/learntools/sql/ex5.py index 6d3f6e562..b700f6458 100644 --- a/learntools/sql/ex5.py +++ b/learntools/sql/ex5.py @@ -96,11 +96,13 @@ def check(self, results): # check 2: length of dataframe assert (len(results) == len(rides_per_year_answer)), ("The results don't look right. Try again.") # check 3: one value in particular - year_to_check = list(rides_per_year_answer["year"])[-1] - correct_number = int(rides_per_year_answer.loc[rides_per_year_answer["year"]==year_to_check]["num_trips"].values) - submitted_number = int(results.loc[results["year"]==year_to_check]["num_trips"].values) - assert (correct_number == submitted_number), ("The results don't look right. Try again.") - + year_to_check = rides_per_year_answer["year"].iloc[-1] + correct_number = rides_per_year_answer.loc[rides_per_year_answer["year"] == year_to_check, + "num_trips"].iloc[0] + submitted_number = results.loc[results["year"] == year_to_check, + "num_trips"].iloc[0] + assert(correct_number == submitted_number) + _hint = "Start your query with `SELECT EXTRACT(YEAR FROM trip_start_timestamp) AS year, COUNT(1) AS num_trips`." _solution = CS( """ From 7cedc18f666148d2b74d0df6907e3a82766493c4 Mon Sep 17 00:00:00 2001 From: John Miller Date: Thu, 26 Dec 2024 11:02:57 -0600 Subject: [PATCH 02/14] Update ex6.py q5 --- learntools/sql/ex6.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/learntools/sql/ex6.py b/learntools/sql/ex6.py index a07a279b0..bbcf1a353 100644 --- a/learntools/sql/ex6.py +++ b/learntools/sql/ex6.py @@ -191,9 +191,9 @@ def check(self, query, results): assert ('user_id' in results.columns), ('You do not have a `user_id` column in your results.') assert ('number_of_answers' in results.columns), ('You do not have a `number_of_answers` column in your results.') # check 3: correct user IDs - correct_ids = set([int(i) for i in bigquery_experts_answer.user_id.values if not np.isnan(i)]) - submitted_ids = set([int(i) for i in results.user_id.values if not np.isnan(i)]) - assert (correct_ids == submitted_ids), ('You seem to have the wrong values in the `user_id` column.') + correct_ids = bigquery_experts_answer.loc[bigquery_experts_answer.user_id.notna(), "user_id"].unique() + submitted_ids = results.loc[results.user_id.notna(), "user_id"].unique() + assert(np.array_equal(correct_ids, submitted_ids)) # check 4: check one value from other column first_id = list(bigquery_experts_answer["user_id"])[0] correct_num = int(bigquery_experts_answer[bigquery_experts_answer["user_id"] == first_id]["number_of_answers"]) From 5ce0635d4e1a9fc3f40f2e7da859300781b536df Mon Sep 17 00:00:00 2001 From: John Miller Date: Thu, 26 Dec 2024 12:02:43 -0600 Subject: [PATCH 03/14] Update ex1.py q2 --- learntools/sql_advanced/ex1.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/learntools/sql_advanced/ex1.py b/learntools/sql_advanced/ex1.py index 0df6599a7..1d4da5a33 100644 --- a/learntools/sql_advanced/ex1.py +++ b/learntools/sql_advanced/ex1.py @@ -79,11 +79,11 @@ def check(self, query): "%d rows, but you have %d rows." % (len(correct_answer), len(results))) # check 2: calculated values # correct result - correct_list = [i for i in list(correct_answer["time_to_answer"]) if not math.isnan(i)] - correct_number = int(sum(correct_list)/len(correct_list)) + correct_list = correct_answwer.loc[correct_answer["time_to_answer"].notna(), "time_to_answer"] + correct_number = correct_list.sum()/len(correct_list)) # submitted value - submitted_list = [i for i in list(results["time_to_answer"]) if not math.isnan(i)] - submitted_number = int(sum(submitted_list)/len(submitted_list)) + submitted_list = results.loc[results["time_to_answer"].notna(), "time_to_answer"] + submitted_number = submitted_list.sum()/len(submitted_list)) assert (int(submitted_number)==int(correct_number)), ("The results don't look right. Please make sure that the part of the query " "that calculates the values in the `time_to_answer` column is unmodified.") From 62fda470b7241f64df23dc0ce42f835581cf95ae Mon Sep 17 00:00:00 2001 From: John Miller Date: Thu, 26 Dec 2024 12:05:40 -0600 Subject: [PATCH 04/14] fix bug in Update ex1.py --- learntools/sql_advanced/ex1.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/learntools/sql_advanced/ex1.py b/learntools/sql_advanced/ex1.py index 1d4da5a33..031196863 100644 --- a/learntools/sql_advanced/ex1.py +++ b/learntools/sql_advanced/ex1.py @@ -80,10 +80,10 @@ def check(self, query): # check 2: calculated values # correct result correct_list = correct_answwer.loc[correct_answer["time_to_answer"].notna(), "time_to_answer"] - correct_number = correct_list.sum()/len(correct_list)) + correct_number = correct_list.sum()/len(correct_list) # submitted value submitted_list = results.loc[results["time_to_answer"].notna(), "time_to_answer"] - submitted_number = submitted_list.sum()/len(submitted_list)) + submitted_number = submitted_list.sum()/len(submitted_list) assert (int(submitted_number)==int(correct_number)), ("The results don't look right. Please make sure that the part of the query " "that calculates the values in the `time_to_answer` column is unmodified.") From 31e1dc4578064d7ff8bd758f528b993304dcc5a7 Mon Sep 17 00:00:00 2001 From: John Miller Date: Thu, 26 Dec 2024 12:08:29 -0600 Subject: [PATCH 05/14] Update ex1.py bug fix q1 --- learntools/sql_advanced/ex1.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learntools/sql_advanced/ex1.py b/learntools/sql_advanced/ex1.py index 031196863..41c0af19a 100644 --- a/learntools/sql_advanced/ex1.py +++ b/learntools/sql_advanced/ex1.py @@ -79,7 +79,7 @@ def check(self, query): "%d rows, but you have %d rows." % (len(correct_answer), len(results))) # check 2: calculated values # correct result - correct_list = correct_answwer.loc[correct_answer["time_to_answer"].notna(), "time_to_answer"] + correct_list = correct_result.loc[correct_result["time_to_answer"].notna(), "time_to_answer"] correct_number = correct_list.sum()/len(correct_list) # submitted value submitted_list = results.loc[results["time_to_answer"].notna(), "time_to_answer"] From e902f9fa90294173faea73a4da9625aa6785250b Mon Sep 17 00:00:00 2001 From: John Miller Date: Thu, 26 Dec 2024 12:13:15 -0600 Subject: [PATCH 06/14] Update ex1.py --- learntools/sql_advanced/ex1.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learntools/sql_advanced/ex1.py b/learntools/sql_advanced/ex1.py index 41c0af19a..f5d0e3194 100644 --- a/learntools/sql_advanced/ex1.py +++ b/learntools/sql_advanced/ex1.py @@ -79,7 +79,7 @@ def check(self, query): "%d rows, but you have %d rows." % (len(correct_answer), len(results))) # check 2: calculated values # correct result - correct_list = correct_result.loc[correct_result["time_to_answer"].notna(), "time_to_answer"] + correct_list = correct_answer.loc[correct_answer["time_to_answer"].notna(), "time_to_answer"] correct_number = correct_list.sum()/len(correct_list) # submitted value submitted_list = results.loc[results["time_to_answer"].notna(), "time_to_answer"] From 16b693411b4de164f9d1a2e64063114a0600a624 Mon Sep 17 00:00:00 2001 From: John Miller Date: Thu, 26 Dec 2024 13:32:02 -0600 Subject: [PATCH 07/14] Update ex2.py q3 --- learntools/sql_advanced/ex2.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/learntools/sql_advanced/ex2.py b/learntools/sql_advanced/ex2.py index c45e48e41..6864161f5 100644 --- a/learntools/sql_advanced/ex2.py +++ b/learntools/sql_advanced/ex2.py @@ -173,12 +173,12 @@ def check(self, query): # check 3: check values, length of dataframe assert (len(results)==len(break_time_answer)), ("Your answer does not have the correct number of rows.") # check 4: specific number - id_to_check = list(break_time_answer["taxi_id"])[0] - correct_ans = [int(i) for i in list(break_time_answer.loc[break_time_answer["taxi_id"] == id_to_check]["prev_break"]) if math.isnan(i)==False] - submitted_ans = [int(i) for i in list(results.loc[results["taxi_id"] == id_to_check]["prev_break"]) if math.isnan(i)==False] + id_to_check = break_time_answer["taxi_id"].iloc[0] + correct_ans = break_time_answer.loc[break_time_answer"taxi_id"].eq(id_to_check) & break_time_answer["prev_break"].notna(), "prev_break"] + submitted_ans = results.loc[results["taxi_id"].eq(id_to_check) & results["prev_break"].notna(), "prev_break"] if len(correct_ans) > 0: - assert (min(correct_ans)==min(submitted_ans)), ("The results don't look right. Try again.") - assert (max(correct_ans)==max(submitted_ans)), ("The results don't look right. Try again.") + assert (correct_ans.min() == submitted_ans.min()), ("The results don't look right. Try again.") + assert (correct_ans.max() == submitted_ans.max()), ("The results don't look right. Try again.") _solution = CS( \ """ From 87e2c0467f58a4f518a323e4148b6d0373eeba92 Mon Sep 17 00:00:00 2001 From: John Miller Date: Thu, 26 Dec 2024 13:37:20 -0600 Subject: [PATCH 08/14] Update ex2.py --- learntools/sql_advanced/ex2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learntools/sql_advanced/ex2.py b/learntools/sql_advanced/ex2.py index 6864161f5..2f4114fc3 100644 --- a/learntools/sql_advanced/ex2.py +++ b/learntools/sql_advanced/ex2.py @@ -174,7 +174,7 @@ def check(self, query): assert (len(results)==len(break_time_answer)), ("Your answer does not have the correct number of rows.") # check 4: specific number id_to_check = break_time_answer["taxi_id"].iloc[0] - correct_ans = break_time_answer.loc[break_time_answer"taxi_id"].eq(id_to_check) & break_time_answer["prev_break"].notna(), "prev_break"] + correct_ans = break_time_answer.loc[break_time_answer["taxi_id"].eq(id_to_check) & break_time_answer["prev_break"].notna(), "prev_break"] submitted_ans = results.loc[results["taxi_id"].eq(id_to_check) & results["prev_break"].notna(), "prev_break"] if len(correct_ans) > 0: assert (correct_ans.min() == submitted_ans.min()), ("The results don't look right. Try again.") From 96e90499fc12d04b6e9327c90f7a74c411590f56 Mon Sep 17 00:00:00 2001 From: John Miller Date: Fri, 27 Dec 2024 19:58:53 -0600 Subject: [PATCH 09/14] Update ex5.py restore assert message --- learntools/sql/ex5.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/learntools/sql/ex5.py b/learntools/sql/ex5.py index b700f6458..5e444db41 100644 --- a/learntools/sql/ex5.py +++ b/learntools/sql/ex5.py @@ -97,11 +97,9 @@ def check(self, results): assert (len(results) == len(rides_per_year_answer)), ("The results don't look right. Try again.") # check 3: one value in particular year_to_check = rides_per_year_answer["year"].iloc[-1] - correct_number = rides_per_year_answer.loc[rides_per_year_answer["year"] == year_to_check, - "num_trips"].iloc[0] - submitted_number = results.loc[results["year"] == year_to_check, - "num_trips"].iloc[0] - assert(correct_number == submitted_number) + correct_number = rides_per_year_answer.loc[rides_per_year_answer["year"] == year_to_check, "num_trips"].iloc[0] + submitted_number = results.loc[results["year"] == year_to_check, "num_trips"].iloc[0] + assert(correct_number == submitted_number), ("The results don't look right. Try again.") _hint = "Start your query with `SELECT EXTRACT(YEAR FROM trip_start_timestamp) AS year, COUNT(1) AS num_trips`." _solution = CS( From 1d7f2173e84845e84b6972d79cb8ba4e33cabc7d Mon Sep 17 00:00:00 2001 From: John Miller Date: Fri, 27 Dec 2024 20:00:15 -0600 Subject: [PATCH 10/14] Update ex6.py restore assert message --- learntools/sql/ex6.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learntools/sql/ex6.py b/learntools/sql/ex6.py index bbcf1a353..909e3e022 100644 --- a/learntools/sql/ex6.py +++ b/learntools/sql/ex6.py @@ -193,7 +193,7 @@ def check(self, query, results): # check 3: correct user IDs correct_ids = bigquery_experts_answer.loc[bigquery_experts_answer.user_id.notna(), "user_id"].unique() submitted_ids = results.loc[results.user_id.notna(), "user_id"].unique() - assert(np.array_equal(correct_ids, submitted_ids)) + assert(np.array_equal(correct_ids, submitted_ids)), ), ('You seem to have the wrong values in the `user_id` column.') # check 4: check one value from other column first_id = list(bigquery_experts_answer["user_id"])[0] correct_num = int(bigquery_experts_answer[bigquery_experts_answer["user_id"] == first_id]["number_of_answers"]) From 5fc37f8757ed1603746a3192c15b16d8cac13899 Mon Sep 17 00:00:00 2001 From: John Miller Date: Mon, 30 Dec 2024 12:20:02 -0600 Subject: [PATCH 11/14] Update ex5.py --- learntools/sql/ex5.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learntools/sql/ex5.py b/learntools/sql/ex5.py index 5e444db41..df68af1f4 100644 --- a/learntools/sql/ex5.py +++ b/learntools/sql/ex5.py @@ -99,7 +99,7 @@ def check(self, results): year_to_check = rides_per_year_answer["year"].iloc[-1] correct_number = rides_per_year_answer.loc[rides_per_year_answer["year"] == year_to_check, "num_trips"].iloc[0] submitted_number = results.loc[results["year"] == year_to_check, "num_trips"].iloc[0] - assert(correct_number == submitted_number), ("The results don't look right. Try again.") + assert correct_number == submitted_number, "The results don't look right. Try again." _hint = "Start your query with `SELECT EXTRACT(YEAR FROM trip_start_timestamp) AS year, COUNT(1) AS num_trips`." _solution = CS( From 167e81d4072638576d99145cc06ec1206a93d985 Mon Sep 17 00:00:00 2001 From: John Miller Date: Mon, 30 Dec 2024 12:26:11 -0600 Subject: [PATCH 12/14] Update ex6.py --- learntools/sql/ex6.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learntools/sql/ex6.py b/learntools/sql/ex6.py index 909e3e022..ffd11814f 100644 --- a/learntools/sql/ex6.py +++ b/learntools/sql/ex6.py @@ -193,7 +193,7 @@ def check(self, query, results): # check 3: correct user IDs correct_ids = bigquery_experts_answer.loc[bigquery_experts_answer.user_id.notna(), "user_id"].unique() submitted_ids = results.loc[results.user_id.notna(), "user_id"].unique() - assert(np.array_equal(correct_ids, submitted_ids)), ), ('You seem to have the wrong values in the `user_id` column.') + assert np.array_equal(correct_ids, submitted_ids), 'You seem to have the wrong values in the `user_id` column.' # check 4: check one value from other column first_id = list(bigquery_experts_answer["user_id"])[0] correct_num = int(bigquery_experts_answer[bigquery_experts_answer["user_id"] == first_id]["number_of_answers"]) From 6d0b0001b3c0d64b3a6078c0f0667b6e23a6a3b0 Mon Sep 17 00:00:00 2001 From: John Miller Date: Mon, 30 Dec 2024 12:27:46 -0600 Subject: [PATCH 13/14] Update ex1.py --- learntools/sql_advanced/ex1.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learntools/sql_advanced/ex1.py b/learntools/sql_advanced/ex1.py index f5d0e3194..0fec48dd3 100644 --- a/learntools/sql_advanced/ex1.py +++ b/learntools/sql_advanced/ex1.py @@ -84,7 +84,7 @@ def check(self, query): # submitted value submitted_list = results.loc[results["time_to_answer"].notna(), "time_to_answer"] submitted_number = submitted_list.sum()/len(submitted_list) - assert (int(submitted_number)==int(correct_number)), ("The results don't look right. Please make sure that the part of the query " + assert int(submitted_number) == int(correct_number), ("The results don't look right. Please make sure that the part of the query " "that calculates the values in the `time_to_answer` column is unmodified.") _solution = CS(\ From 8132ca6d9caea0d40105d820bbc260d1abe0d112 Mon Sep 17 00:00:00 2001 From: John Miller Date: Mon, 30 Dec 2024 12:28:46 -0600 Subject: [PATCH 14/14] Update ex2.py --- learntools/sql_advanced/ex2.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/learntools/sql_advanced/ex2.py b/learntools/sql_advanced/ex2.py index 2f4114fc3..cff2de8a3 100644 --- a/learntools/sql_advanced/ex2.py +++ b/learntools/sql_advanced/ex2.py @@ -177,8 +177,8 @@ def check(self, query): correct_ans = break_time_answer.loc[break_time_answer["taxi_id"].eq(id_to_check) & break_time_answer["prev_break"].notna(), "prev_break"] submitted_ans = results.loc[results["taxi_id"].eq(id_to_check) & results["prev_break"].notna(), "prev_break"] if len(correct_ans) > 0: - assert (correct_ans.min() == submitted_ans.min()), ("The results don't look right. Try again.") - assert (correct_ans.max() == submitted_ans.max()), ("The results don't look right. Try again.") + assert correct_ans.min() == submitted_ans.min(), "The results don't look right. Try again." + assert correct_ans.max() == submitted_ans.max(), "The results don't look right. Try again." _solution = CS( \ """