diff --git a/[lab-sql-9]Giuliana.ipynb b/[lab-sql-9]Giuliana.ipynb
new file mode 100644
index 0000000..8a9f8bf
--- /dev/null
+++ b/[lab-sql-9]Giuliana.ipynb
@@ -0,0 +1,1003 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "27d3244b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# instal and restart kernel\n",
+ "\n",
+ "import pymysql\n",
+ "from sqlalchemy import create_engine\n",
+ "import pandas as pd"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "7d069dd1",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "········\n"
+ ]
+ }
+ ],
+ "source": [
+ "import getpass\n",
+ "password =getpass.getpass()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "id": "8f582ffd",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " rental_id | \n",
+ " rental_date | \n",
+ " inventory_id | \n",
+ " customer_id | \n",
+ " return_date | \n",
+ " staff_id | \n",
+ " last_update | \n",
+ " first_name | \n",
+ " last_name | \n",
+ " email | \n",
+ " address_id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 76 | \n",
+ " 2005-05-25 11:30:37 | \n",
+ " 3021 | \n",
+ " 1 | \n",
+ " 2005-06-03 12:00:37 | \n",
+ " 2 | \n",
+ " 2006-02-15 21:30:53 | \n",
+ " MARY | \n",
+ " SMITH | \n",
+ " MARY.SMITH@sakilacustomer.org | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 573 | \n",
+ " 2005-05-28 10:35:23 | \n",
+ " 4020 | \n",
+ " 1 | \n",
+ " 2005-06-03 06:32:23 | \n",
+ " 1 | \n",
+ " 2006-02-15 21:30:53 | \n",
+ " MARY | \n",
+ " SMITH | \n",
+ " MARY.SMITH@sakilacustomer.org | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 320 | \n",
+ " 2005-05-27 00:09:24 | \n",
+ " 1090 | \n",
+ " 2 | \n",
+ " 2005-05-28 04:30:24 | \n",
+ " 2 | \n",
+ " 2006-02-15 21:30:53 | \n",
+ " PATRICIA | \n",
+ " JOHNSON | \n",
+ " PATRICIA.JOHNSON@sakilacustomer.org | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 435 | \n",
+ " 2005-05-27 17:17:09 | \n",
+ " 3328 | \n",
+ " 3 | \n",
+ " 2005-06-02 11:20:09 | \n",
+ " 2 | \n",
+ " 2006-02-15 21:30:53 | \n",
+ " LINDA | \n",
+ " WILLIAMS | \n",
+ " LINDA.WILLIAMS@sakilacustomer.org | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 830 | \n",
+ " 2005-05-29 22:43:55 | \n",
+ " 3464 | \n",
+ " 3 | \n",
+ " 2005-06-01 17:43:55 | \n",
+ " 1 | \n",
+ " 2006-02-15 21:30:53 | \n",
+ " LINDA | \n",
+ " WILLIAMS | \n",
+ " LINDA.WILLIAMS@sakilacustomer.org | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 1151 | \n",
+ " 914 | \n",
+ " 2005-05-30 11:06:00 | \n",
+ " 1393 | \n",
+ " 596 | \n",
+ " 2005-06-04 06:07:00 | \n",
+ " 2 | \n",
+ " 2006-02-15 21:30:53 | \n",
+ " ENRIQUE | \n",
+ " FORSYTHE | \n",
+ " ENRIQUE.FORSYTHE@sakilacustomer.org | \n",
+ " 602 | \n",
+ "
\n",
+ " \n",
+ " | 1152 | \n",
+ " 974 | \n",
+ " 2005-05-30 20:28:42 | \n",
+ " 2617 | \n",
+ " 596 | \n",
+ " 2005-06-08 23:45:42 | \n",
+ " 2 | \n",
+ " 2006-02-15 21:30:53 | \n",
+ " ENRIQUE | \n",
+ " FORSYTHE | \n",
+ " ENRIQUE.FORSYTHE@sakilacustomer.org | \n",
+ " 602 | \n",
+ "
\n",
+ " \n",
+ " | 1153 | \n",
+ " 34 | \n",
+ " 2005-05-25 04:19:28 | \n",
+ " 2613 | \n",
+ " 597 | \n",
+ " 2005-05-29 00:10:28 | \n",
+ " 2 | \n",
+ " 2006-02-15 21:30:53 | \n",
+ " FREDDIE | \n",
+ " DUGGAN | \n",
+ " FREDDIE.DUGGAN@sakilacustomer.org | \n",
+ " 603 | \n",
+ "
\n",
+ " \n",
+ " | 1154 | \n",
+ " 514 | \n",
+ " 2005-05-28 03:09:28 | \n",
+ " 1697 | \n",
+ " 597 | \n",
+ " 2005-06-05 00:49:28 | \n",
+ " 2 | \n",
+ " 2006-02-15 21:30:53 | \n",
+ " FREDDIE | \n",
+ " DUGGAN | \n",
+ " FREDDIE.DUGGAN@sakilacustomer.org | \n",
+ " 603 | \n",
+ "
\n",
+ " \n",
+ " | 1155 | \n",
+ " 1008 | \n",
+ " 2005-05-31 01:18:56 | \n",
+ " 914 | \n",
+ " 599 | \n",
+ " 2005-06-01 01:24:56 | \n",
+ " 2 | \n",
+ " 2006-02-15 21:30:53 | \n",
+ " AUSTIN | \n",
+ " CINTRON | \n",
+ " AUSTIN.CINTRON@sakilacustomer.org | \n",
+ " 605 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
1156 rows × 11 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " rental_id rental_date inventory_id customer_id \\\n",
+ "0 76 2005-05-25 11:30:37 3021 1 \n",
+ "1 573 2005-05-28 10:35:23 4020 1 \n",
+ "2 320 2005-05-27 00:09:24 1090 2 \n",
+ "3 435 2005-05-27 17:17:09 3328 3 \n",
+ "4 830 2005-05-29 22:43:55 3464 3 \n",
+ "... ... ... ... ... \n",
+ "1151 914 2005-05-30 11:06:00 1393 596 \n",
+ "1152 974 2005-05-30 20:28:42 2617 596 \n",
+ "1153 34 2005-05-25 04:19:28 2613 597 \n",
+ "1154 514 2005-05-28 03:09:28 1697 597 \n",
+ "1155 1008 2005-05-31 01:18:56 914 599 \n",
+ "\n",
+ " return_date staff_id last_update first_name last_name \\\n",
+ "0 2005-06-03 12:00:37 2 2006-02-15 21:30:53 MARY SMITH \n",
+ "1 2005-06-03 06:32:23 1 2006-02-15 21:30:53 MARY SMITH \n",
+ "2 2005-05-28 04:30:24 2 2006-02-15 21:30:53 PATRICIA JOHNSON \n",
+ "3 2005-06-02 11:20:09 2 2006-02-15 21:30:53 LINDA WILLIAMS \n",
+ "4 2005-06-01 17:43:55 1 2006-02-15 21:30:53 LINDA WILLIAMS \n",
+ "... ... ... ... ... ... \n",
+ "1151 2005-06-04 06:07:00 2 2006-02-15 21:30:53 ENRIQUE FORSYTHE \n",
+ "1152 2005-06-08 23:45:42 2 2006-02-15 21:30:53 ENRIQUE FORSYTHE \n",
+ "1153 2005-05-29 00:10:28 2 2006-02-15 21:30:53 FREDDIE DUGGAN \n",
+ "1154 2005-06-05 00:49:28 2 2006-02-15 21:30:53 FREDDIE DUGGAN \n",
+ "1155 2005-06-01 01:24:56 2 2006-02-15 21:30:53 AUSTIN CINTRON \n",
+ "\n",
+ " email address_id \n",
+ "0 MARY.SMITH@sakilacustomer.org 5 \n",
+ "1 MARY.SMITH@sakilacustomer.org 5 \n",
+ "2 PATRICIA.JOHNSON@sakilacustomer.org 6 \n",
+ "3 LINDA.WILLIAMS@sakilacustomer.org 7 \n",
+ "4 LINDA.WILLIAMS@sakilacustomer.org 7 \n",
+ "... ... ... \n",
+ "1151 ENRIQUE.FORSYTHE@sakilacustomer.org 602 \n",
+ "1152 ENRIQUE.FORSYTHE@sakilacustomer.org 602 \n",
+ "1153 FREDDIE.DUGGAN@sakilacustomer.org 603 \n",
+ "1154 FREDDIE.DUGGAN@sakilacustomer.org 603 \n",
+ "1155 AUSTIN.CINTRON@sakilacustomer.org 605 \n",
+ "\n",
+ "[1156 rows x 11 columns]"
+ ]
+ },
+ "execution_count": 54,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Create a Python connection with SQL database and retrieve the results of the last two queries \n",
+ "# as dataframes:\n",
+ "\n",
+ "connection_string = 'mysql+pymysql://root:' + password + '@localhost/bank'\n",
+ "engine = create_engine(connection_string)\n",
+ "rentals_may = pd.read_sql_query('select * from sakila.rentals_may', engine)\n",
+ "rentals_may"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "id": "fb02195b",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "connection_string = 'mysql+pymysql://root:' + password + '@localhost/bank'\n",
+ "engine = create_engine(connection_string)\n",
+ "rentals_june = pd.read_sql_query('select * from sakila.rentals_june', engine)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "66eec81c",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " customer_id | \n",
+ " first_name | \n",
+ " last_name | \n",
+ " num_rentals_may | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 197 | \n",
+ " SUE | \n",
+ " PETERS | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 109 | \n",
+ " EDNA | \n",
+ " WEST | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 506 | \n",
+ " LESLIE | \n",
+ " SEWARD | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 53 | \n",
+ " HEATHER | \n",
+ " MORRIS | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 269 | \n",
+ " CASSANDRA | \n",
+ " WALTERS | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 515 | \n",
+ " 352 | \n",
+ " ALBERT | \n",
+ " CROUSE | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 516 | \n",
+ " 353 | \n",
+ " JONATHAN | \n",
+ " SCARBOROUGH | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 517 | \n",
+ " 355 | \n",
+ " TERRY | \n",
+ " GRISSOM | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 518 | \n",
+ " 356 | \n",
+ " GERALD | \n",
+ " FULTZ | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 519 | \n",
+ " 599 | \n",
+ " AUSTIN | \n",
+ " CINTRON | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
520 rows × 4 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " customer_id first_name last_name num_rentals_may\n",
+ "0 197 SUE PETERS 8\n",
+ "1 109 EDNA WEST 7\n",
+ "2 506 LESLIE SEWARD 7\n",
+ "3 53 HEATHER MORRIS 6\n",
+ "4 269 CASSANDRA WALTERS 6\n",
+ ".. ... ... ... ...\n",
+ "515 352 ALBERT CROUSE 1\n",
+ "516 353 JONATHAN SCARBOROUGH 1\n",
+ "517 355 TERRY GRISSOM 1\n",
+ "518 356 GERALD FULTZ 1\n",
+ "519 599 AUSTIN CINTRON 1\n",
+ "\n",
+ "[520 rows x 4 columns]"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Check the number of rentals for each customer for May\n",
+ "\n",
+ "num_rentals_may = rentals_may[['customer_id', 'first_name', 'last_name']].value_counts().reset_index()\n",
+ "num_rentals_may.columns = ['customer_id', 'first_name', 'last_name', 'num_rentals_may']\n",
+ "num_rentals_may\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "id": "79d44568",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " customer_id | \n",
+ " first_name | \n",
+ " last_name | \n",
+ " num_rentals_june | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 31 | \n",
+ " BRENDA | \n",
+ " WRIGHT | \n",
+ " 11 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 454 | \n",
+ " ALEX | \n",
+ " GRESHAM | \n",
+ " 10 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 329 | \n",
+ " FRANK | \n",
+ " WAGGONER | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 295 | \n",
+ " DAISY | \n",
+ " BATES | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 561 | \n",
+ " IAN | \n",
+ " STILL | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 585 | \n",
+ " 496 | \n",
+ " TYLER | \n",
+ " WREN | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 586 | \n",
+ " 370 | \n",
+ " WAYNE | \n",
+ " TRUONG | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 587 | \n",
+ " 315 | \n",
+ " KENNETH | \n",
+ " GOODEN | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 588 | \n",
+ " 198 | \n",
+ " ELSIE | \n",
+ " KELLEY | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 589 | \n",
+ " 250 | \n",
+ " JO | \n",
+ " FOWLER | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
590 rows × 4 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " customer_id first_name last_name num_rentals_june\n",
+ "0 31 BRENDA WRIGHT 11\n",
+ "1 454 ALEX GRESHAM 10\n",
+ "2 329 FRANK WAGGONER 9\n",
+ "3 295 DAISY BATES 9\n",
+ "4 561 IAN STILL 9\n",
+ ".. ... ... ... ...\n",
+ "585 496 TYLER WREN 1\n",
+ "586 370 WAYNE TRUONG 1\n",
+ "587 315 KENNETH GOODEN 1\n",
+ "588 198 ELSIE KELLEY 1\n",
+ "589 250 JO FOWLER 1\n",
+ "\n",
+ "[590 rows x 4 columns]"
+ ]
+ },
+ "execution_count": 56,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Check the number of rentals for each customer for June\n",
+ "\n",
+ "num_rentals_june = rentals_june[['customer_id', 'first_name', 'last_name']].value_counts().reset_index()\n",
+ "num_rentals_june.columns = ['customer_id', 'first_name', 'last_name', 'num_rentals_june']\n",
+ "num_rentals_june"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "id": "90a1b712",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Write a function that checks if customer borrowed more or less films in the month of June as compared to May.\n",
+ "\n",
+ "# Hint: For this part, you can create a join between the two dataframes created before, using the merge function \n",
+ "# available for pandas dataframes. Here is a link to the documentation for the merge function.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "id": "a860a07d",
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " customer_id | \n",
+ " first_name | \n",
+ " last_name | \n",
+ " num_rentals_may | \n",
+ " num_rentals_june | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 197 | \n",
+ " SUE | \n",
+ " PETERS | \n",
+ " 8 | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 109 | \n",
+ " EDNA | \n",
+ " WEST | \n",
+ " 7 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 506 | \n",
+ " LESLIE | \n",
+ " SEWARD | \n",
+ " 7 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 53 | \n",
+ " HEATHER | \n",
+ " MORRIS | \n",
+ " 6 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 269 | \n",
+ " CASSANDRA | \n",
+ " WALTERS | \n",
+ " 6 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 507 | \n",
+ " 352 | \n",
+ " ALBERT | \n",
+ " CROUSE | \n",
+ " 1 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 508 | \n",
+ " 353 | \n",
+ " JONATHAN | \n",
+ " SCARBOROUGH | \n",
+ " 1 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 509 | \n",
+ " 355 | \n",
+ " TERRY | \n",
+ " GRISSOM | \n",
+ " 1 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 510 | \n",
+ " 356 | \n",
+ " GERALD | \n",
+ " FULTZ | \n",
+ " 1 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 511 | \n",
+ " 599 | \n",
+ " AUSTIN | \n",
+ " CINTRON | \n",
+ " 1 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
512 rows × 5 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " customer_id first_name last_name num_rentals_may num_rentals_june\n",
+ "0 197 SUE PETERS 8 8\n",
+ "1 109 EDNA WEST 7 5\n",
+ "2 506 LESLIE SEWARD 7 5\n",
+ "3 53 HEATHER MORRIS 6 5\n",
+ "4 269 CASSANDRA WALTERS 6 3\n",
+ ".. ... ... ... ... ...\n",
+ "507 352 ALBERT CROUSE 1 5\n",
+ "508 353 JONATHAN SCARBOROUGH 1 3\n",
+ "509 355 TERRY GRISSOM 1 2\n",
+ "510 356 GERALD FULTZ 1 3\n",
+ "511 599 AUSTIN CINTRON 1 4\n",
+ "\n",
+ "[512 rows x 5 columns]"
+ ]
+ },
+ "execution_count": 58,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "rentals_merged = pd.merge(num_rentals_may, num_rentals_june)\n",
+ "rentals_merged"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 62,
+ "id": "cc4e32c8",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def more_or_less(df):\n",
+ " df['rental_diff'] = df['num_rentals_june'] - df['num_rentals_may']\n",
+ " return df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 63,
+ "id": "a034c03e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " customer_id | \n",
+ " first_name | \n",
+ " last_name | \n",
+ " num_rentals_may | \n",
+ " num_rentals_june | \n",
+ " rental_diff | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 197 | \n",
+ " SUE | \n",
+ " PETERS | \n",
+ " 8 | \n",
+ " 8 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 109 | \n",
+ " EDNA | \n",
+ " WEST | \n",
+ " 7 | \n",
+ " 5 | \n",
+ " -2 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 506 | \n",
+ " LESLIE | \n",
+ " SEWARD | \n",
+ " 7 | \n",
+ " 5 | \n",
+ " -2 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 53 | \n",
+ " HEATHER | \n",
+ " MORRIS | \n",
+ " 6 | \n",
+ " 5 | \n",
+ " -1 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 269 | \n",
+ " CASSANDRA | \n",
+ " WALTERS | \n",
+ " 6 | \n",
+ " 3 | \n",
+ " -3 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 507 | \n",
+ " 352 | \n",
+ " ALBERT | \n",
+ " CROUSE | \n",
+ " 1 | \n",
+ " 5 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 508 | \n",
+ " 353 | \n",
+ " JONATHAN | \n",
+ " SCARBOROUGH | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 509 | \n",
+ " 355 | \n",
+ " TERRY | \n",
+ " GRISSOM | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 510 | \n",
+ " 356 | \n",
+ " GERALD | \n",
+ " FULTZ | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 511 | \n",
+ " 599 | \n",
+ " AUSTIN | \n",
+ " CINTRON | \n",
+ " 1 | \n",
+ " 4 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
512 rows × 6 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " customer_id first_name last_name num_rentals_may num_rentals_june \\\n",
+ "0 197 SUE PETERS 8 8 \n",
+ "1 109 EDNA WEST 7 5 \n",
+ "2 506 LESLIE SEWARD 7 5 \n",
+ "3 53 HEATHER MORRIS 6 5 \n",
+ "4 269 CASSANDRA WALTERS 6 3 \n",
+ ".. ... ... ... ... ... \n",
+ "507 352 ALBERT CROUSE 1 5 \n",
+ "508 353 JONATHAN SCARBOROUGH 1 3 \n",
+ "509 355 TERRY GRISSOM 1 2 \n",
+ "510 356 GERALD FULTZ 1 3 \n",
+ "511 599 AUSTIN CINTRON 1 4 \n",
+ "\n",
+ " rental_diff \n",
+ "0 0 \n",
+ "1 -2 \n",
+ "2 -2 \n",
+ "3 -1 \n",
+ "4 -3 \n",
+ ".. ... \n",
+ "507 4 \n",
+ "508 2 \n",
+ "509 1 \n",
+ "510 2 \n",
+ "511 3 \n",
+ "\n",
+ "[512 rows x 6 columns]"
+ ]
+ },
+ "execution_count": 63,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "more_or_less(rentals_merged)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "7b729be1",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "09ea450d",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/[lab-sql-9]Giuliana.sql b/[lab-sql-9]Giuliana.sql
new file mode 100644
index 0000000..3f8b419
--- /dev/null
+++ b/[lab-sql-9]Giuliana.sql
@@ -0,0 +1,39 @@
+-- Create a Python connection with SQL database and retrieve the results of the last two queries (also mentioned below) as dataframes:
+-- Check the number of rentals for each customer for May
+-- Check the number of rentals for each customer for June
+-- Hint: You can store the results from the two queries in two separate dataframes.
+-- Write a function that checks if customer borrowed more or less films in the month of June as compared to May.
+-- Hint: For this part, you can create a join between the two dataframes created before, using the merge function available for pandas dataframes. Here is a link to the documentation for the merge function.
+
+
+-- Creating the table for May rentals and filtering the rents that happend in that month
+
+create table sakila.rentals_may
+select ren.*, cus.first_name, cus.last_name, cus.email, cus.address_id
+from sakila.rental ren
+inner join sakila.customer cus
+on ren.customer_id = cus.customer_id
+where date_format(convert(rental_date, date), '%M') = 'May';
+
+select * from sakila.rentals_may;
+
+
+-- Doing the same for the month of June
+create table sakila.rentals_june
+select ren.*, cus.first_name, cus.last_name, cus.email, cus.address_id
+from sakila.rental ren
+inner join sakila.customer cus
+on ren.customer_id = cus.customer_id
+where date_format(convert(rental_date, date), '%M') = 'June';
+
+-- Checking the number of rentakls for each customer in May
+select count(rental_id) as num_rents, customer_id, first_name, last_name
+from sakila.rentals_may
+group by 2,3,4
+order by num_rents desc;
+
+-- Checking the number of rentals for each customer in June
+select count(rental_id) as num_rents, customer_id, first_name, last_name
+from sakila.rentals_june
+group by 2,3,4
+order by num_rents desc;
\ No newline at end of file