{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "Untitled81.ipynb", "provenance": [], "authorship_tag": "ABX9TyO/+kkkksBEnlmLxqymjH7s", "include_colab_link": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "source": [ "# Gathering Data Conclusion" ], "metadata": { "id": "CIYUOQFbeuks" } }, { "cell_type": "markdown", "source": [ "At this point you should be able to gather data from:\n", "\n", "\n", "* A CSV or Excel file\n", "* SQL databases\n", "* HTML tables\n", "* Twitter\n", "\n", "From all that data that you have gathered you should be able to do some basic manipulations on it using pandas or sql langauge.\n", "\n", "To prepare yourself for the exam, attempt the following problems:\n", "\n", "1. Use the SQL table `bigquery-public-data.london_fire_brigade.fire_brigade_service_calls`\n", " 1. How many entries are there in the dataset\n", " 2. How many False Alarms happened between 10PM and 5 AM?\n", " 3. What is the average number of num_pumps_attending when there is a Fire?\n", " 4. What is the largest number of num_pumps_attending to a Road Vehicle property_category\n", " 5. How many fires had more than average number of pumps attending?\n", "2. Navigate to the Oklahoma wikipedia page. Grab the table on tempuratures in largest cities. I've included some code below for cleaning up that table.\n", " 1. What is the average monthly high temperature for OKC?\n", " 2. Create a plot of the average monthly low tempurature in Tulsa.\n", " 3. Identify the city with the highest high tempurature in each month. \n", "\n", "\n", "Code for cleaning up table in #2 is below. Make sure to scrape the table and call it `df`.\n", "\n", "```\n", "df = df.melt(id_vars = ['City','Unnamed: 1'],\n", " value_vars = df.columns[2:],\n", " var_name = 'month'\n", ")\n", "\n", "df.value = df.value.apply(lambda s: int(s[:2]))\n", "\n", "df.columns = ['City','Low_High', 'Month','Temp_F']\n", "\n", "df\n", "````\n", "\n" ], "metadata": { "id": "8PScXGVue0Ko" } }, { "cell_type": "markdown", "source": [ "## My Solutions" ], "metadata": { "id": "QaL5KbKi5aT-" } }, { "cell_type": "markdown", "source": [ "### SQL" ], "metadata": { "id": "JOcNd1NN-dmN" } }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "AI8At688ete-", "outputId": "5692620a-9e54-42fa-a702-5faef9c95d2c", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Authenticated\n" ] } ], "source": [ "\n", "\n", "from google.colab import auth\n", "auth.authenticate_user()\n", "print('Authenticated')\n", "\n" ] }, { "cell_type": "markdown", "source": [ "How many total rows are there?" ], "metadata": { "id": "wNXOKfq56L3K" } }, { "cell_type": "code", "source": [ "%%bigquery --project pic-math\n", "SELECT \n", " COUNT(*) as total_rows\n", "FROM `bigquery-public-data.london_fire_brigade.fire_brigade_service_calls`" ], "metadata": { "id": "tZ4eTiGD5rfS", "outputId": "2ccb6962-9b8c-4ea6-b1ce-e4d63a491145", "colab": { "base_uri": "https://localhost:8080/", "height": 80 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
total_rows
032247
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " total_rows\n", "0 32247" ] }, "metadata": {}, "execution_count": 2 } ] }, { "cell_type": "markdown", "source": [ "Here I am peaking at the data." ], "metadata": { "id": "BFT4vM2x6P4o" } }, { "cell_type": "code", "source": [ "%%bigquery --project pic-math\n", "SELECT *\n", "FROM `bigquery-public-data.london_fire_brigade.fire_brigade_service_calls`\n", "LIMIT 10" ], "metadata": { "id": "KHlI1B5R5yj3", "outputId": "7775ce91-1517-41cb-e3e2-0c40815e1abe", "colab": { "base_uri": "https://localhost:8080/", "height": 687 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
incident_numberdate_of_callcal_yeartime_of_callhour_of_calltimestamp_of_callincident_groupstop_code_descriptionspecial_service_typeproperty_categoryproperty_typeaddress_qualifierpostcode_fullpostcode_districtborough_codeborough_nameproper_caseward_codeward_nameward_name_neweasting_mnorthing_measting_roundednorthing_roundedfrsincident_station_groundfirst_pump_arriving_attendance_timefirst_pump_arriving_deployed_from_stationsecond_pump_arriving_attendance_timesecond_pump_arriving_deployed_from_stationnum_stations_with_pumps_attendingnum_pumps_attending
0000320-010120172017-01-01201715:30:22152017-01-01 15:30:22+00:00False AlarmAFANoneDwellingPurpose Built Flats/Maisonettes - Up to 3 stor...Within same buildingNoneIG9E00000000NOT GEO-CODEDNot geo-codedE00000000Not geo-codedNot geo-codedNaNNaN541450194050OverTheBorderOverTheBorderNoneNoneNoneNone22
1003727-090120172017-01-09201710:41:54102017-01-09 10:41:54+00:00False AlarmAFANoneDwellingHouse - single occupancyCorrect incident locationNoneIG7E00000000NOT GEO-CODEDNot geo-codedE00000000Not geo-codedNot geo-codedNaNNaN543650192950OverTheBorderOverTheBorderNoneNoneNoneNone22
2003762-090120172017-01-09201712:28:39122017-01-09 12:28:39+00:00False AlarmAFANoneDwellingHouse - single occupancyCorrect incident locationNoneIG7E00000000NOT GEO-CODEDNot geo-codedE00000000Not geo-codedNot geo-codedNaNNaN543650192950OverTheBorderOverTheBorderNoneNoneNoneNone22
3006403-160120172017-01-16201704:02:1442017-01-16 04:02:14+00:00False AlarmAFANoneDwellingPurpose Built Flats/Maisonettes - Up to 3 stor...Correct incident locationNoneIG7E00000000NOT GEO-CODEDNot geo-codedE00000000Not geo-codedNot geo-codedNaNNaN544350192250OverTheBorderOverTheBorderNoneNoneNoneNone22
4010947-260120172017-01-26201711:14:03112017-01-26 11:14:03+00:00False AlarmAFANoneDwellingHouse - single occupancyCorrect incident locationNoneIG10E00000000NOT GEO-CODEDNot geo-codedE00000000Not geo-codedNot geo-codedNaNNaN542050196450OverTheBorderOverTheBorderNoneNoneNoneNone11
5014169-030220172017-02-03201704:58:0242017-02-03 04:58:02+00:00False AlarmAFANoneDwellingConverted Flat/Maisonettes - 3 or more storeysCorrect incident locationNoneTN14E00000000NOT GEO-CODEDNot geo-codedE00000000Not geo-codedNot geo-codedNaNNaN548750157750OverTheBorderOverTheBorderNoneNoneNoneNone35
6016263-080220172017-02-08201709:47:0592017-02-08 09:47:05+00:00False AlarmAFANoneDwellingHouse - single occupancyCorrect incident locationNoneIG7E00000000NOT GEO-CODEDNot geo-codedE00000000Not geo-codedNot geo-codedNaNNaN544150192550OverTheBorderOverTheBorderNoneNoneNoneNone22
7016865-090220172017-02-09201718:40:43182017-02-09 18:40:43+00:00False AlarmAFANoneNon ResidentialWarehouseCorrect incident locationUB9 5HJUB9E00000000NOT GEO-CODEDNot geo-codedE00000000Not geo-codedNot geo-coded504201.0188280.0504250188250OverTheBorderOverTheBorderNoneNoneNoneNone11
8017092-100220172017-02-10201710:07:53102017-02-10 10:07:53+00:00False AlarmAFANoneNon ResidentialFactoryCorrect incident locationUB9 5HJUB9E00000000NOT GEO-CODEDNot geo-codedE00000000Not geo-codedNot geo-coded504287.0188271.0504250188250OverTheBorderOverTheBorderNoneNoneNoneNone11
9024609-270220172017-02-27201709:34:3392017-02-27 09:34:33+00:00False AlarmAFANoneDwellingConverted Flat/Maisonette - Up to 2 storeysCorrect incident locationNoneCR3E00000000NOT GEO-CODEDNot geo-codedE00000000Not geo-codedNot geo-codedNaNNaN537650155050OverTheBorderOverTheBorderNoneNoneNoneNone11
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " incident_number ... num_pumps_attending\n", "0 000320-01012017 ... 2\n", "1 003727-09012017 ... 2\n", "2 003762-09012017 ... 2\n", "3 006403-16012017 ... 2\n", "4 010947-26012017 ... 1\n", "5 014169-03022017 ... 5\n", "6 016263-08022017 ... 2\n", "7 016865-09022017 ... 1\n", "8 017092-10022017 ... 1\n", "9 024609-27022017 ... 1\n", "\n", "[10 rows x 32 columns]" ] }, "metadata": {}, "execution_count": 3 } ] }, { "cell_type": "markdown", "source": [ "To find 'False Alarms' between certain hours, I will use the `WHERE` command and join several clauses carefully with `AND` and `OR`" ], "metadata": { "id": "KnCMpMPA6aWI" } }, { "cell_type": "code", "source": [ "%%bigquery --project pic-math\n", "SELECT COUNT(*) as number_of_late_night_false_alarms\n", "FROM `bigquery-public-data.london_fire_brigade.fire_brigade_service_calls`\n", "WHERE incident_group = \"False Alarm\" AND (hour_of_call >= 22 OR hour_of_call <= 4)" ], "metadata": { "id": "VxjoXqTC5_VK", "outputId": "a2726374-87ae-40f9-fc5e-c7d9b2323e47", "colab": { "base_uri": "https://localhost:8080/", "height": 80 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
number_of_late_night_false_alarms
02825
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " number_of_late_night_false_alarms\n", "0 2825" ] }, "metadata": {}, "execution_count": 8 } ] }, { "cell_type": "markdown", "source": [ "If we want to see about when there is a fire, we will need to either restrict our data to then or possible `GROUP BY` I think I'll use the group by since I already did one with the WHERE." ], "metadata": { "id": "RzlXzj2C8AFv" } }, { "cell_type": "code", "source": [ "%%bigquery --project pic-math\n", "SELECT incident_group, AVG(num_pumps_attending) as avg_pumps_attending\n", "FROM `bigquery-public-data.london_fire_brigade.fire_brigade_service_calls`\n", "GROUP BY incident_group" ], "metadata": { "id": "DZV5fd0t687r", "outputId": "69465da9-df8a-4bc9-aa4c-6be5aa27c24b", "colab": { "base_uri": "https://localhost:8080/", "height": 143 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
incident_groupavg_pumps_attending
0False Alarm1.725776
1Fire1.633012
2Special Service1.177192
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " incident_group avg_pumps_attending\n", "0 False Alarm 1.725776\n", "1 Fire 1.633012\n", "2 Special Service 1.177192" ] }, "metadata": {}, "execution_count": 7 } ] }, { "cell_type": "code", "source": [ "" ], "metadata": { "id": "e86hvLam8trB" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "### HTML" ], "metadata": { "id": "EFa1QQIC-gJd" } }, { "cell_type": "markdown", "source": [ "To navigate to the wikipedia page I'll need some other packages!" ], "metadata": { "id": "7H6aYsM6-jq2" } }, { "cell_type": "code", "source": [ "import requests\n", "import pandas as pa\n", "from bs4 import BeautifulSoup\n", "\n", "\n", "r = requests.get('https://en.wikipedia.org/wiki/Oklahoma')\n", "html_contents = r.text\n", "html_soup = BeautifulSoup(html_contents,\"lxml\")\n", "tables = html_soup.find_all('table',class_=\"wikitable\")\n", "\n", "df = pa.read_html(str(tables))[0]\n", "\n", "\n", "df = df.melt(id_vars = ['City','Unnamed: 1'],\n", " value_vars = df.columns[2:],\n", " var_name = 'month'\n", ")\n", "\n", "df.value = df.value.apply(lambda s: int(s[:2]))\n", "\n", "df.columns = ['City','Low_High', 'Month','Temp_F']\n", "\n", "df" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 424 }, "id": "GoQkKBWjJraL", "outputId": "3a10b975-26a4-4905-c30f-c566fd2a5bcc" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CityLow_HighMonthTemp_F
0Oklahoma CityAvg. highJan50
1Oklahoma CityAvg. lowJan29
2TulsaAvg. highJan48
3TulsaAvg. lowJan27
4LawtonAvg. highJan50
...............
67Oklahoma CityAvg. lowDec31
68TulsaAvg. highDec49
69TulsaAvg. lowDec30
70LawtonAvg. highDec52
71LawtonAvg. lowDec30
\n", "

72 rows × 4 columns

\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " City Low_High Month Temp_F\n", "0 Oklahoma City Avg. high Jan 50\n", "1 Oklahoma City Avg. low Jan 29\n", "2 Tulsa Avg. high Jan 48\n", "3 Tulsa Avg. low Jan 27\n", "4 Lawton Avg. high Jan 50\n", ".. ... ... ... ...\n", "67 Oklahoma City Avg. low Dec 31\n", "68 Tulsa Avg. high Dec 49\n", "69 Tulsa Avg. low Dec 30\n", "70 Lawton Avg. high Dec 52\n", "71 Lawton Avg. low Dec 30\n", "\n", "[72 rows x 4 columns]" ] }, "metadata": {}, "execution_count": 70 } ] }, { "cell_type": "code", "source": [ "df.describe()" ], "metadata": { "id": "gCPnwM15_nCo", "outputId": "434c1abc-4fd2-421c-abb1-bf875ae81c09", "colab": { "base_uri": "https://localhost:8080/", "height": 300 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Temp_F
count72.000000
mean61.333333
std19.325966
min26.000000
25%49.000000
50%62.000000
75%73.000000
max96.000000
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " Temp_F\n", "count 72.000000\n", "mean 61.333333\n", "std 19.325966\n", "min 26.000000\n", "25% 49.000000\n", "50% 62.000000\n", "75% 73.000000\n", "max 96.000000" ] }, "metadata": {}, "execution_count": 71 } ] }, { "cell_type": "code", "source": [ "df.query('City == \"Oklahoma City\" and Low_High == \"Avg. high\"').Temp_F.mean()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "hehqwABATQVC", "outputId": "11008f95-5882-4fc2-b3e4-8b371ff688b8" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "72.25" ] }, "metadata": {}, "execution_count": 82 } ] }, { "cell_type": "code", "source": [ "df.query('City == \"Tulsa\" and Low_High == \"Avg. low\"').Temp_F.hist()" ], "metadata": { "id": "FFjbSrvMAlXW", "outputId": "d0bbf9ae-5c6b-4aa3-b784-dd4b75b8c55d", "colab": { "base_uri": "https://localhost:8080/", "height": 283 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 83 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "df.groupby('City')['Temp_F'].plot(kind ='bar')" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 362 }, "id": "12s6EPvNUc9P", "outputId": "65c60a68-19fb-4270-d024-03191768d22c" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "City\n", "Lawton AxesSubplot(0.125,0.125;0.775x0.755)\n", "Oklahoma City AxesSubplot(0.125,0.125;0.775x0.755)\n", "Tulsa AxesSubplot(0.125,0.125;0.775x0.755)\n", "Name: Temp_F, dtype: object" ] }, "metadata": {}, "execution_count": 87 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "df.query('Low_High == \"Avg. high\"').groupby('Month').agg(['mean','max'])" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 489 }, "id": "uv8J2q6fVYoY", "outputId": "5b14759b-934a-470a-da5c-68d766f265cd" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Temp_F
meanmax
Month
April72.66666773
Aug93.66666795
Dec50.66666752
Feb54.66666756
Jan49.33333350
July94.33333396
June88.66666790
March63.33333365
May80.33333382
Nov61.66666762
Oct74.00000076
Sept85.00000086
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " Temp_F \n", " mean max\n", "Month \n", "April 72.666667 73\n", "Aug 93.666667 95\n", "Dec 50.666667 52\n", "Feb 54.666667 56\n", "Jan 49.333333 50\n", "July 94.333333 96\n", "June 88.666667 90\n", "March 63.333333 65\n", "May 80.333333 82\n", "Nov 61.666667 62\n", "Oct 74.000000 76\n", "Sept 85.000000 86" ] }, "metadata": {}, "execution_count": 93 } ] }, { "cell_type": "code", "source": [ "df[df.Temp_F == df.groupby('Month').Temp_F.transform(max)]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 520 }, "id": "gAZjXulnV8dY", "outputId": "9e066477-2c0a-4ae3-d2f9-823dc185328f" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CityLow_HighMonthTemp_F
0Oklahoma CityAvg. highJan50
4LawtonAvg. highJan50
10LawtonAvg. highFeb56
16LawtonAvg. highMarch65
18Oklahoma CityAvg. highApril73
22LawtonAvg. highApril73
28LawtonAvg. highMay82
34LawtonAvg. highJune90
40LawtonAvg. highJuly96
46LawtonAvg. highAug95
52LawtonAvg. highSept86
58LawtonAvg. highOct76
60Oklahoma CityAvg. highNov62
64LawtonAvg. highNov62
70LawtonAvg. highDec52
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " City Low_High Month Temp_F\n", "0 Oklahoma City Avg. high Jan 50\n", "4 Lawton Avg. high Jan 50\n", "10 Lawton Avg. high Feb 56\n", "16 Lawton Avg. high March 65\n", "18 Oklahoma City Avg. high April 73\n", "22 Lawton Avg. high April 73\n", "28 Lawton Avg. high May 82\n", "34 Lawton Avg. high June 90\n", "40 Lawton Avg. high July 96\n", "46 Lawton Avg. high Aug 95\n", "52 Lawton Avg. high Sept 86\n", "58 Lawton Avg. high Oct 76\n", "60 Oklahoma City Avg. high Nov 62\n", "64 Lawton Avg. high Nov 62\n", "70 Lawton Avg. high Dec 52" ] }, "metadata": {}, "execution_count": 99 } ] } ] }