diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 4128c1e..cdbdc1e 100755 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -16,7 +16,9 @@ "metadata": {}, "outputs": [], "source": [ - "# import numpy and pandas\n" + "# import numpy and pandas\n", + "import numpy as np\n", + "import pandas as pd" ] }, { @@ -30,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -48,11 +50,131 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "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", + "
NameJob TitlesDepartmentFull or Part-TimeSalary or HourlyTypical HoursAnnual SalaryHourly Rate
0AARON, JEFFERY MSERGEANTPOLICEFSalaryNaN101442.0NaN
1AARON, KARINAPOLICE OFFICER (ASSIGNED AS DETECTIVE)POLICEFSalaryNaN94122.0NaN
2AARON, KIMBERLEI RCHIEF CONTRACT EXPEDITERGENERAL SERVICESFSalaryNaN101592.0NaN
3ABAD JR, VICENTE MCIVIL ENGINEER IVWATER MGMNTFSalaryNaN110064.0NaN
4ABASCAL, REECE ETRAFFIC CONTROL AIDE-HOURLYOEMCPHourly20.0NaN19.86
\n", + "
" + ], + "text/plain": [ + " Name Job Titles \\\n", + "0 AARON, JEFFERY M SERGEANT \n", + "1 AARON, KARINA POLICE OFFICER (ASSIGNED AS DETECTIVE) \n", + "2 AARON, KIMBERLEI R CHIEF CONTRACT EXPEDITER \n", + "3 ABAD JR, VICENTE M CIVIL ENGINEER IV \n", + "4 ABASCAL, REECE E TRAFFIC CONTROL AIDE-HOURLY \n", + "\n", + " Department Full or Part-Time Salary or Hourly Typical Hours \\\n", + "0 POLICE F Salary NaN \n", + "1 POLICE F Salary NaN \n", + "2 GENERAL SERVICES F Salary NaN \n", + "3 WATER MGMNT F Salary NaN \n", + "4 OEMC P Hourly 20.0 \n", + "\n", + " Annual Salary Hourly Rate \n", + "0 101442.0 NaN \n", + "1 94122.0 NaN \n", + "2 101592.0 NaN \n", + "3 110064.0 NaN \n", + "4 NaN 19.86 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "salaries.head()" ] }, { @@ -64,11 +186,31 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Name 0\n", + "Job Titles 0\n", + "Department 0\n", + "Full or Part-Time 0\n", + "Salary or Hourly 0\n", + "Typical Hours 25161\n", + "Annual Salary 8022\n", + "Hourly Rate 25161\n", + "dtype: int64" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "salaries.isnull().sum()" ] }, { @@ -80,12 +222,26 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Salary 25161\n", + "Hourly 8022\n", + "Name: Salary or Hourly, dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Your code here:\n", - "\n" + "\n", + "salaries[\"Salary or Hourly\"].value_counts()" ] }, { @@ -104,11 +260,58 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "POLICE 13414\n", + "FIRE 4641\n", + "STREETS & SAN 2198\n", + "OEMC 2102\n", + "WATER MGMNT 1879\n", + "AVIATION 1629\n", + "TRANSPORTN 1140\n", + "PUBLIC LIBRARY 1015\n", + "GENERAL SERVICES 980\n", + "FAMILY & SUPPORT 615\n", + "FINANCE 560\n", + "HEALTH 488\n", + "CITY COUNCIL 411\n", + "LAW 407\n", + "BUILDINGS 269\n", + "COMMUNITY DEVELOPMENT 207\n", + "BUSINESS AFFAIRS 171\n", + "COPA 116\n", + "BOARD OF ELECTION 107\n", + "DoIT 99\n", + "PROCUREMENT 92\n", + "INSPECTOR GEN 87\n", + "MAYOR'S OFFICE 85\n", + "CITY CLERK 84\n", + "ANIMAL CONTRL 81\n", + "HUMAN RESOURCES 79\n", + "CULTURAL AFFAIRS 65\n", + "BUDGET & MGMT 46\n", + "ADMIN HEARNG 39\n", + "DISABILITIES 28\n", + "TREASURER 22\n", + "HUMAN RELATIONS 16\n", + "BOARD OF ETHICS 8\n", + "POLICE BOARD 2\n", + "LICENSE APPL COMM 1\n", + "Name: Department, dtype: int64" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "salaries[\"Department\"].value_counts()" ] }, { @@ -122,11 +325,234 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ - "# Your code here:\n" + "from scipy.stats import trim_mean, mode, skew, gaussian_kde, pearsonr, spearmanr, beta\n", + "from statsmodels.stats.weightstats import ztest as ztest\n", + "from scipy.stats import ttest_ind, norm, t\n", + "from scipy.stats import f_oneway" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "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", + "
NameJob TitlesDepartmentFull or Part-TimeSalary or HourlyTypical HoursAnnual SalaryHourly Rate
4ABASCAL, REECE ETRAFFIC CONTROL AIDE-HOURLYOEMCPHourly20.0NaN19.86
6ABBATACOLA, ROBERT JELECTRICAL MECHANICAVIATIONFHourly40.0NaN46.10
7ABBATE, JOSEPH LPOOL MOTOR TRUCK DRIVERSTREETS & SANFHourly40.0NaN35.60
10ABBOTT, BETTY LFOSTER GRANDPARENTFAMILY & SUPPORTPHourly20.0NaN2.65
18ABDULLAH, LAKENYA NCROSSING GUARDOEMCPHourly20.0NaN17.68
\n", + "
" + ], + "text/plain": [ + " Name Job Titles Department \\\n", + "4 ABASCAL, REECE E TRAFFIC CONTROL AIDE-HOURLY OEMC \n", + "6 ABBATACOLA, ROBERT J ELECTRICAL MECHANIC AVIATION \n", + "7 ABBATE, JOSEPH L POOL MOTOR TRUCK DRIVER STREETS & SAN \n", + "10 ABBOTT, BETTY L FOSTER GRANDPARENT FAMILY & SUPPORT \n", + "18 ABDULLAH, LAKENYA N CROSSING GUARD OEMC \n", + "\n", + " Full or Part-Time Salary or Hourly Typical Hours Annual Salary \\\n", + "4 P Hourly 20.0 NaN \n", + "6 F Hourly 40.0 NaN \n", + "7 F Hourly 40.0 NaN \n", + "10 P Hourly 20.0 NaN \n", + "18 P Hourly 20.0 NaN \n", + "\n", + " Hourly Rate \n", + "4 19.86 \n", + "6 46.10 \n", + "7 35.60 \n", + "10 2.65 \n", + "18 17.68 " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Your code here:\n", + "only_hourly = salaries[salaries[\"Salary or Hourly\"] == \"Hourly\"]\n", + "only_hourly.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "8022" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(only_hourly)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "32.78855771628128" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# The hourly wage of all hourly workers is significantly different from $30/hr\n", + "only_hourly[\"Hourly Rate\"].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "statistic, p_value = ztest(only_hourly[\"Hourly Rate\"], value = 30, alternative=\"two-sided\")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.8228873859286195e-94" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_value" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The hourly wage is not significantly different\n" + ] + } + ], + "source": [ + "if p_value < 0.05:\n", + " print (\"The hourly wage is not significantly different\")\n", + "else:\n", + " print (\"There is not enough information to accept H0\")" ] }, { @@ -144,7 +570,338 @@ "metadata": {}, "outputs": [], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "ly_mean = 86000\n", + "ty_mean higher" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "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", + "
NameJob TitlesDepartmentFull or Part-TimeSalary or HourlyTypical HoursAnnual SalaryHourly Rate
0AARON, JEFFERY MSERGEANTPOLICEFSalaryNaN101442.0NaN
1AARON, KARINAPOLICE OFFICER (ASSIGNED AS DETECTIVE)POLICEFSalaryNaN94122.0NaN
9ABBATE, TERRY MPOLICE OFFICERPOLICEFSalaryNaN93354.0NaN
11ABDALLAH, ZAIDPOLICE OFFICERPOLICEFSalaryNaN84054.0NaN
12ABDELHADI, ABDALMAHDPOLICE OFFICERPOLICEFSalaryNaN87006.0NaN
\n", + "
" + ], + "text/plain": [ + " Name Job Titles Department \\\n", + "0 AARON, JEFFERY M SERGEANT POLICE \n", + "1 AARON, KARINA POLICE OFFICER (ASSIGNED AS DETECTIVE) POLICE \n", + "9 ABBATE, TERRY M POLICE OFFICER POLICE \n", + "11 ABDALLAH, ZAID POLICE OFFICER POLICE \n", + "12 ABDELHADI, ABDALMAHD POLICE OFFICER POLICE \n", + "\n", + " Full or Part-Time Salary or Hourly Typical Hours Annual Salary \\\n", + "0 F Salary NaN 101442.0 \n", + "1 F Salary NaN 94122.0 \n", + "9 F Salary NaN 93354.0 \n", + "11 F Salary NaN 84054.0 \n", + "12 F Salary NaN 87006.0 \n", + "\n", + " Hourly Rate \n", + "0 NaN \n", + "1 NaN \n", + "9 NaN \n", + "11 NaN \n", + "12 NaN " + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "only_police = salaries[salaries[\"Department\"] == \"POLICE\"]\n", + "only_police.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "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", + "
NameJob TitlesDepartmentFull or Part-TimeSalary or HourlyTypical HoursAnnual SalaryHourly Rate
0AARON, JEFFERY MSERGEANTPOLICEFSalaryNaN101442.0NaN
1AARON, KARINAPOLICE OFFICER (ASSIGNED AS DETECTIVE)POLICEFSalaryNaN94122.0NaN
9ABBATE, TERRY MPOLICE OFFICERPOLICEFSalaryNaN93354.0NaN
11ABDALLAH, ZAIDPOLICE OFFICERPOLICEFSalaryNaN84054.0NaN
12ABDELHADI, ABDALMAHDPOLICE OFFICERPOLICEFSalaryNaN87006.0NaN
\n", + "
" + ], + "text/plain": [ + " Name Job Titles Department \\\n", + "0 AARON, JEFFERY M SERGEANT POLICE \n", + "1 AARON, KARINA POLICE OFFICER (ASSIGNED AS DETECTIVE) POLICE \n", + "9 ABBATE, TERRY M POLICE OFFICER POLICE \n", + "11 ABDALLAH, ZAID POLICE OFFICER POLICE \n", + "12 ABDELHADI, ABDALMAHD POLICE OFFICER POLICE \n", + "\n", + " Full or Part-Time Salary or Hourly Typical Hours Annual Salary \\\n", + "0 F Salary NaN 101442.0 \n", + "1 F Salary NaN 94122.0 \n", + "9 F Salary NaN 93354.0 \n", + "11 F Salary NaN 84054.0 \n", + "12 F Salary NaN 87006.0 \n", + "\n", + " Hourly Rate \n", + "0 NaN \n", + "1 NaN \n", + "9 NaN \n", + "11 NaN \n", + "12 NaN " + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "only_police2 = only_police[only_police[\"Salary or Hourly\"] == \"Salary\"]\n", + "only_police2.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "86486.41450313339" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "only_police2[\"Annual Salary\"].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "statistic, p_value = ztest(only_police2[\"Annual Salary\"], value = 86000, alternative=\"smaller\")" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.9989719154712452" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_value" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "There is not enough information to accept H0\n" + ] + } + ], + "source": [ + "if p_value < 0.025:\n", + " print (\"Salaries this year are higher than last year's mean of $86000/year a year for all salaried employees\")\n", + "else:\n", + " print (\"There is not enough information to accept H0\")" ] }, { @@ -156,11 +913,330 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 43, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "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", + "
Salary or HourlyHourly
Department
ANIMAL CONTRL19
AVIATION1082
BUDGET & MGMT2
BUSINESS AFFAIRS7
CITY COUNCIL64
COMMUNITY DEVELOPMENT4
CULTURAL AFFAIRS7
FAMILY & SUPPORT287
FINANCE44
FIRE2
GENERAL SERVICES765
HEALTH3
HUMAN RESOURCES4
LAW40
MAYOR'S OFFICE8
OEMC1273
POLICE10
PROCUREMENT2
PUBLIC LIBRARY299
STREETS & SAN1862
TRANSPORTN725
WATER MGMNT1513
\n", + "
" + ], + "text/plain": [ + "Salary or Hourly Hourly\n", + "Department \n", + "ANIMAL CONTRL 19\n", + "AVIATION 1082\n", + "BUDGET & MGMT 2\n", + "BUSINESS AFFAIRS 7\n", + "CITY COUNCIL 64\n", + "COMMUNITY DEVELOPMENT 4\n", + "CULTURAL AFFAIRS 7\n", + "FAMILY & SUPPORT 287\n", + "FINANCE 44\n", + "FIRE 2\n", + "GENERAL SERVICES 765\n", + "HEALTH 3\n", + "HUMAN RESOURCES 4\n", + "LAW 40\n", + "MAYOR'S OFFICE 8\n", + "OEMC 1273\n", + "POLICE 10\n", + "PROCUREMENT 2\n", + "PUBLIC LIBRARY 299\n", + "STREETS & SAN 1862\n", + "TRANSPORTN 725\n", + "WATER MGMNT 1513" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Your code here:\n", + "my_crosstab = pd.crosstab(only_hourly[\"Department\"], only_hourly[\"Salary or Hourly\"])\n", + "my_crosstab" + ] + }, + { + "cell_type": "code", + "execution_count": 44, "metadata": {}, - "outputs": [], + "outputs": [ + { + "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", + "
Salary or HourlyHourly
Department
STREETS & SAN1862
WATER MGMNT1513
OEMC1273
AVIATION1082
GENERAL SERVICES765
TRANSPORTN725
PUBLIC LIBRARY299
FAMILY & SUPPORT287
CITY COUNCIL64
FINANCE44
LAW40
ANIMAL CONTRL19
POLICE10
MAYOR'S OFFICE8
CULTURAL AFFAIRS7
BUSINESS AFFAIRS7
HUMAN RESOURCES4
COMMUNITY DEVELOPMENT4
HEALTH3
FIRE2
PROCUREMENT2
BUDGET & MGMT2
\n", + "
" + ], + "text/plain": [ + "Salary or Hourly Hourly\n", + "Department \n", + "STREETS & SAN 1862\n", + "WATER MGMNT 1513\n", + "OEMC 1273\n", + "AVIATION 1082\n", + "GENERAL SERVICES 765\n", + "TRANSPORTN 725\n", + "PUBLIC LIBRARY 299\n", + "FAMILY & SUPPORT 287\n", + "CITY COUNCIL 64\n", + "FINANCE 44\n", + "LAW 40\n", + "ANIMAL CONTRL 19\n", + "POLICE 10\n", + "MAYOR'S OFFICE 8\n", + "CULTURAL AFFAIRS 7\n", + "BUSINESS AFFAIRS 7\n", + "HUMAN RESOURCES 4\n", + "COMMUNITY DEVELOPMENT 4\n", + "HEALTH 3\n", + "FIRE 2\n", + "PROCUREMENT 2\n", + "BUDGET & MGMT 2" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your code here:\n" + "my_crosstab.sort_values('Hourly', ascending=False)" ] }, { @@ -172,11 +1248,97 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ - "# Your code here:\n" + "streets_and_san = only_hourly[only_hourly[\"Department\"] == \"STREETS & SAN\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('float64')" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "streets_and_san[\"Hourly Rate\"].dtype" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The probability that the two samples have the same mean is: nan\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Marc\\AppData\\Local\\Temp\\ipykernel_2132\\3637988850.py:2: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n", + " p_value = ttest_ind(streets_and_san[\"Hourly Rate\"], 35)[1]\n" + ] + } + ], + "source": [ + "# Your code here:\n", + "p_value = ttest_ind(streets_and_san[\"Hourly Rate\"], 35)[1] \n", + "\n", + "print(f\"The probability that the two samples have the same mean is: {p_value}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Running a ztest as an alternative" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "statistic, p_value = ztest(streets_and_san[\"Hourly Rate\"], value = 35, alternative=\"smaller\")" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5.478855641943434e-22" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_value" ] }, { @@ -200,11 +1362,43 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 69, "metadata": {}, "outputs": [], "source": [ - "# Your code here:\n" + "import scipy.stats as st" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [], + "source": [ + "new_list_hourly = salaries[salaries['Salary or Hourly']== 'Hourly' ]['Hourly Rate']" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(32.52345834488529, 33.05365708767727)" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Your code here:\n", + "st.t.interval(confidence=0.95, df=len(new_list_hourly)-1,\n", + " loc=np.mean(new_list_hourly),\n", + " scale=st.sem(new_list_hourly))" ] }, { @@ -216,11 +1410,52 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 73, "metadata": {}, "outputs": [], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "only_police = salaries[salaries['Department'] == 'POLICE']" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [], + "source": [ + "new_salary_list = only_police[only_police[\"Salary or Hourly\"] == \"Salary\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [], + "source": [ + "new_salary_list2 = new_salary_list[\"Annual Salary\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(86177.05631531784, 86795.77269094894)" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "st.t.interval(confidence=0.95, df=len(new_salary_list2)-1,\n", + " loc=np.mean(new_salary_list2),\n", + " scale=st.sem(new_salary_list2))" ] }, { @@ -248,7 +1483,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -262,7 +1497,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.10.4" } }, "nbformat": 4,