diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 59b955a..8fc27c6 100755 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -12,12 +12,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# import numpy and pandas\n", - "\n" + "import numpy as np\n", + "import pandas as pd\n" ] }, { @@ -31,11 +32,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "emp = pd.read_csv(\"Current_Employee_Names__Salaries__and_Position_Titles.csv\")" ] }, { @@ -47,12 +49,131 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "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": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Your code here:\n", - "\n" + "emp.head()" ] }, { @@ -64,12 +185,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "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\n" + ] + } + ], "source": [ "# Your code here:\n", - "\n" + "miss = emp.isna().sum()\n", + "print(miss)" ] }, { @@ -81,12 +219,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of Hourly Employees: 8022\n", + "Number of Salaried Employees: 33183\n" + ] + } + ], "source": [ "# Your code here:\n", - "\n" + "cont_h = emp['Hourly Rate'].count()\n", + "mask = emp['Salary or Hourly'] == 'Salary'\n", + "cont_sal = mask.count()\n", + "\n", + "print(\"Number of Hourly Employees:\",cont_h)\n", + "print(\"Number of Salaried Employees:\",cont_sal)" ] }, { @@ -105,12 +257,232 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Name
Department
ADMIN HEARNG39
ANIMAL CONTRL81
AVIATION1629
BOARD OF ELECTION107
BOARD OF ETHICS8
BUDGET & MGMT46
BUILDINGS269
BUSINESS AFFAIRS171
CITY CLERK84
CITY COUNCIL411
COMMUNITY DEVELOPMENT207
COPA116
CULTURAL AFFAIRS65
DISABILITIES28
DoIT99
FAMILY & SUPPORT615
FINANCE560
FIRE4641
GENERAL SERVICES980
HEALTH488
HUMAN RELATIONS16
HUMAN RESOURCES79
INSPECTOR GEN87
LAW407
LICENSE APPL COMM1
MAYOR'S OFFICE85
OEMC2102
POLICE13414
POLICE BOARD2
PROCUREMENT92
PUBLIC LIBRARY1015
STREETS & SAN2198
TRANSPORTN1140
TREASURER22
WATER MGMNT1879
\n", + "
" + ], + "text/plain": [ + " Name\n", + "Department \n", + "ADMIN HEARNG 39\n", + "ANIMAL CONTRL 81\n", + "AVIATION 1629\n", + "BOARD OF ELECTION 107\n", + "BOARD OF ETHICS 8\n", + "BUDGET & MGMT 46\n", + "BUILDINGS 269\n", + "BUSINESS AFFAIRS 171\n", + "CITY CLERK 84\n", + "CITY COUNCIL 411\n", + "COMMUNITY DEVELOPMENT 207\n", + "COPA 116\n", + "CULTURAL AFFAIRS 65\n", + "DISABILITIES 28\n", + "DoIT 99\n", + "FAMILY & SUPPORT 615\n", + "FINANCE 560\n", + "FIRE 4641\n", + "GENERAL SERVICES 980\n", + "HEALTH 488\n", + "HUMAN RELATIONS 16\n", + "HUMAN RESOURCES 79\n", + "INSPECTOR GEN 87\n", + "LAW 407\n", + "LICENSE APPL COMM 1\n", + "MAYOR'S OFFICE 85\n", + "OEMC 2102\n", + "POLICE 13414\n", + "POLICE BOARD 2\n", + "PROCUREMENT 92\n", + "PUBLIC LIBRARY 1015\n", + "STREETS & SAN 2198\n", + "TRANSPORTN 1140\n", + "TREASURER 22\n", + "WATER MGMNT 1879" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Your code here:\n", - "\n" + "\n", + "employee_counts = pd.pivot_table(emp, values='Name', index='Department', aggfunc='count')\n", + "employee_counts\n" ] }, { @@ -124,12 +496,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ttest_1sampResult(statistic=-8.214441783620622, pvalue=0.0385602935596717)\n", + "Ttest_1sampResult(statistic=-8.214441783620622, pvalue=0.9614397064403283)\n" + ] + } + ], "source": [ "# Your code here:\n", - "\n" + "import scipy.stats as st\n", + "\n", + "hourly = emp.loc[emp['Salary or Hourly'] == 'Hourly', 'Hourly Rate']\n", + "sample = st.ttest_1samp(hourly, 30)\n", + "\n", + "print(st.ttest_1samp(sample,95, alternative=\"less\"))\n", + "print(st.ttest_1samp(sample,95, alternative=\"greater\"))" ] }, { @@ -143,12 +530,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Null hypothesis rejected. The hourly wage is significantly different from $30/hr.\n" + ] + } + ], "source": [ "# Your code here:\n", - "\n" + "\n", + "\n", + "# null hypothesis\n", + "null_hypothesis = 86000\n", + "\n", + "# t-test\n", + "t_statistic, p_value = st.ttest_1samp(hourly, null_hypothesis)\n", + "\n", + "alpha = 0.05\n", + "\n", + "# Check the null hypothesis \n", + "if p_value < alpha:\n", + " print(\"Null hypothesis rejected. The hourly wage is significantly different from $30/hr.\")\n", + "else:\n", + " print(\"Null hypothesis cannot be rejected. The hourly wage is not significantly different from $30/hr.\")" ] }, { @@ -160,12 +569,313 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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 HourlyHourlySalaryTotal Hourly
Department
STREETS & SAN18623361862
WATER MGMNT15133661513
OEMC12738291273
AVIATION10825471082
GENERAL SERVICES765215765
TRANSPORTN725415725
PUBLIC LIBRARY299716299
FAMILY & SUPPORT287328287
CITY COUNCIL6434764
FINANCE4451644
LAW4036740
ANIMAL CONTRL196219
POLICE101340410
MAYOR'S OFFICE8778
BUSINESS AFFAIRS71647
CULTURAL AFFAIRS7587
COMMUNITY DEVELOPMENT42034
HUMAN RESOURCES4754
HEALTH34853
PROCUREMENT2902
FIRE246392
BUDGET & MGMT2442
HUMAN RELATIONS0160
INSPECTOR GEN0870
DoIT0990
LICENSE APPL COMM010
DISABILITIES0280
COPA01160
CITY CLERK0840
POLICE BOARD020
BUILDINGS02690
BOARD OF ETHICS080
BOARD OF ELECTION01070
TREASURER0220
ADMIN HEARNG0390
\n", + "
" + ], + "text/plain": [ + "Salary or Hourly Hourly Salary Total Hourly\n", + "Department \n", + "STREETS & SAN 1862 336 1862\n", + "WATER MGMNT 1513 366 1513\n", + "OEMC 1273 829 1273\n", + "AVIATION 1082 547 1082\n", + "GENERAL SERVICES 765 215 765\n", + "TRANSPORTN 725 415 725\n", + "PUBLIC LIBRARY 299 716 299\n", + "FAMILY & SUPPORT 287 328 287\n", + "CITY COUNCIL 64 347 64\n", + "FINANCE 44 516 44\n", + "LAW 40 367 40\n", + "ANIMAL CONTRL 19 62 19\n", + "POLICE 10 13404 10\n", + "MAYOR'S OFFICE 8 77 8\n", + "BUSINESS AFFAIRS 7 164 7\n", + "CULTURAL AFFAIRS 7 58 7\n", + "COMMUNITY DEVELOPMENT 4 203 4\n", + "HUMAN RESOURCES 4 75 4\n", + "HEALTH 3 485 3\n", + "PROCUREMENT 2 90 2\n", + "FIRE 2 4639 2\n", + "BUDGET & MGMT 2 44 2\n", + "HUMAN RELATIONS 0 16 0\n", + "INSPECTOR GEN 0 87 0\n", + "DoIT 0 99 0\n", + "LICENSE APPL COMM 0 1 0\n", + "DISABILITIES 0 28 0\n", + "COPA 0 116 0\n", + "CITY CLERK 0 84 0\n", + "POLICE BOARD 0 2 0\n", + "BUILDINGS 0 269 0\n", + "BOARD OF ETHICS 0 8 0\n", + "BOARD OF ELECTION 0 107 0\n", + "TREASURER 0 22 0\n", + "ADMIN HEARNG 0 39 0" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Your code here:\n", - "\n" + "\n", + "dept_hourly = pd.crosstab(index=emp['Department'], columns=emp['Salary or Hourly'])\n", + "\n", + "# calculate total number of hourly\n", + "dept_hourly['Total Hourly'] = dept_hourly['Hourly']\n", + "\n", + "# sort departments \n", + "dept_hourly = dept_hourly.sort_values(by='Total Hourly', ascending=False)\n", + "\n", + "dept_hourly\n" ] }, { @@ -177,12 +887,52 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rejected.Is significantly less than $35/hr.\n", + "T-statistic: -9.567447887848152\n", + "P-value: 1.6689265282353859e-21\n" + ] + } + ], "source": [ "# Your code here:\n", - "\n" + "dep = emp['Department']== 'STREETS & SAN'\n", + "streets=emp[dep]\n", + "\n", + "hourly_wages = streets['Hourly Rate']\n", + "hourly_wages = hourly_wages.dropna()\n", + "\n", + "# Define the null hypothesis\n", + "null_hypothesis = 35\n", + "\n", + "# Perform the t-test\n", + "t_statistic, p_value = st.ttest_1samp(hourly_wages, null_hypothesis, alternative='less')\n", + "\n", + "\n", + "alpha = 0.05\n", + "\n", + "\n", + "if p_value < alpha:\n", + " print(\"Rejected.Is significantly less than $35/hr.\")\n", + "else:\n", + " print(\"Null hypothesis cannot be rejected. \")\n", + "\n", + "\n", + "print(\"T-statistic:\", t_statistic)\n", + "print(\"P-value:\", p_value)\n" ] }, { @@ -257,7 +1007,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -271,7 +1021,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.9.13" } }, "nbformat": 4,