diff --git a/Python-Assignment-2-sabaali93-patch-1/Dockerfile b/Python-Assignment-2-sabaali93-patch-1/Dockerfile new file mode 100644 index 0000000..4690393 --- /dev/null +++ b/Python-Assignment-2-sabaali93-patch-1/Dockerfile @@ -0,0 +1,11 @@ +From python:2 +EXPOSE 8888 +WORKDIR /Python-Assignment-2-sabaali93-patch-1 +ADD ./hospitaldata.csv . +ADD ./Saba_Khi_Python_Assignment2.ipynb . +RUN pip install notebook +RUN pip install pandas +RUN pip install numpy +RUN pip install matplotlib +RUN pip install datetime +CMD ["jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0", "--allow-root"] diff --git a/Python-Assignment-2-sabaali93-patch-1/Saba_Khi_Python_Assignment2.ipynb b/Python-Assignment-2-sabaali93-patch-1/Saba_Khi_Python_Assignment2.ipynb new file mode 100644 index 0000000..891ab29 --- /dev/null +++ b/Python-Assignment-2-sabaali93-patch-1/Saba_Khi_Python_Assignment2.ipynb @@ -0,0 +1,1258 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "data = pd.read_csv('C:/Users/saba.ali/Desktop/Saba/hospitaldata.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Question 1\n", + "\n", + "col = data.columns\n", + "col = [c.replace(\".\", \"\") for c in col]\n", + "data.columns = col" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Friday': 26,\n", + " 'Monday': 51,\n", + " 'Saturday': 20,\n", + " 'Sunday': 7,\n", + " 'Thursday': 33,\n", + " 'Tuesday': 42,\n", + " 'Wednesday': 43}" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Question 2\n", + "\n", + "days = []\n", + "for i in data.Date:\n", + " days.append(i.split(\",\")[0])\n", + "\n", + "count = {}\n", + "for i in days:\n", + " if i in count.keys():\n", + " count[i] +=1\n", + " else:\n", + " count[i] = 1\n", + "count" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "28.0\n" + ] + } + ], + "source": [ + "#Question 3\n", + "\n", + "data.Age = pd.to_numeric(data.Age,errors='coerce')\n", + "data.Age = data.Age.fillna(0)\n", + "print(round(data.Age.mean(),0))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "23" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Question 4\n", + "\n", + "child = 0\n", + "for i in data.Age:\n", + " if i >=1 and i <=12:\n", + " child +=1\n", + "child" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Male: Consultation\n", + "Female: Consultation\n" + ] + } + ], + "source": [ + "#Question 5\n", + "\n", + "Male=data[data.Sex=='M']\n", + "print(\"Male: \" + Male['Procedure'].value_counts().index.tolist()[0])\n", + "\n", + "Female=data[data.Sex=='F']\n", + "print(\"Female: \" + Female['Procedure'].value_counts().index.tolist()[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "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", + "
TotalCharges
ConsultingDoctor
Brig Asif2800.0
Brig Farrukh3750.0
Col Ulfat Ellahi1000.0
Dr Alaf Khan513050.0
Dr Ali26100.0
Dr Ammad1400.0
Dr Ammara1500.0
Dr Fakiha22600.0
Dr Irfan11000.0
Dr Kinza Alam76700.0
Dr Mehwish1000.0
Dr Mumtaz1000.0
Dr Paul1500.0
Dr Qurat ul Ain20900.0
Dr Riffat Naheed18800.0
Dr Saad52000.0
Dr Saad Riaz5700.0
Dr Saima Shams1500.0
Dr Saniya4000.0
Dr Shireen3200.0
Dr Waqar Azeem6000.0
Dr Zubair1700.0
Nursing Staff9150.0
\n", + "
" + ], + "text/plain": [ + " TotalCharges\n", + "ConsultingDoctor \n", + "Brig Asif 2800.0\n", + "Brig Farrukh 3750.0\n", + "Col Ulfat Ellahi 1000.0\n", + "Dr Alaf Khan 513050.0\n", + "Dr Ali 26100.0\n", + "Dr Ammad 1400.0\n", + "Dr Ammara 1500.0\n", + "Dr Fakiha 22600.0\n", + "Dr Irfan 11000.0\n", + "Dr Kinza Alam 76700.0\n", + "Dr Mehwish 1000.0\n", + "Dr Mumtaz 1000.0\n", + "Dr Paul 1500.0\n", + "Dr Qurat ul Ain 20900.0\n", + "Dr Riffat Naheed 18800.0\n", + "Dr Saad 52000.0\n", + "Dr Saad Riaz 5700.0\n", + "Dr Saima Shams 1500.0\n", + "Dr Saniya 4000.0\n", + "Dr Shireen 3200.0\n", + "Dr Waqar Azeem 6000.0\n", + "Dr Zubair 1700.0\n", + "Nursing Staff 9150.0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Question 6\n", + "\n", + "data1 = [data.ConsultingDoctor,data.TotalCharges]\n", + "data1 = pd.DataFrame(data1)\n", + "data1 = data1.transpose()\n", + "data1['TotalCharges']=pd.to_numeric(data1['TotalCharges'],errors='coerce')\n", + "data1.groupby(data1.ConsultingDoctor).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "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", + "
TotalCharges
Procedure
22 Unit Bridge69500.0
4 Unit Bridge11000.0
8 Unit Bridge+2 R.C.T30000.0
BSR50.0
C Section65000.0
CancelledNaN
Consultation83950.0
Consultation + X Ray3000.0
Consultation + Dressing5000.0
Consultation + Nebulize1150.0
Consultation + USG1500.0
Consultation+Denture1500.0
Consultation+ECG1300.0
Consultation+ER Retain2800.0
Consultation+Retain3500.0
Consultation+USG1500.0
Consultation+X Ray4750.0
Consultation+x Ray650.0
Coupety300.0
Crown20000.0
Denture+Scalling+Filling5500.0
Dressing2900.0
Er Retain300.0
Extraction14600.0
Filling6500.0
Filling + X Rays2600.0
Injection1800.0
Laboratory TestNaN
Medicine100.0
Operation50000.0
Orthodontics240000.0
Pharmacy900.0
Polishing500.0
Pop3700.0
R.C.T15500.0
R.C.T+Crown8000.0
R.C.T+Scalling+Crown9500.0
R.P.D + Crown11000.0
RCT3000.0
RCT (4 teeth) Bridge (9 teeth)48000.0
Scalling16500.0
Scalling+Polishing4000.0
Stiches700.0
USG5500.0
USG Abdomen1000.0
USG KUB1000.0
X Ray5800.0
\n", + "
" + ], + "text/plain": [ + " TotalCharges\n", + "Procedure \n", + "22 Unit Bridge 69500.0\n", + "4 Unit Bridge 11000.0\n", + "8 Unit Bridge+2 R.C.T 30000.0\n", + "BSR 50.0\n", + "C Section 65000.0\n", + "Cancelled NaN\n", + "Consultation 83950.0\n", + "Consultation + X Ray 3000.0\n", + "Consultation + Dressing 5000.0\n", + "Consultation + Nebulize 1150.0\n", + "Consultation + USG 1500.0\n", + "Consultation+Denture 1500.0\n", + "Consultation+ECG 1300.0\n", + "Consultation+ER Retain 2800.0\n", + "Consultation+Retain 3500.0\n", + "Consultation+USG 1500.0\n", + "Consultation+X Ray 4750.0\n", + "Consultation+x Ray 650.0\n", + "Coupety 300.0\n", + "Crown 20000.0\n", + "Denture+Scalling+Filling 5500.0\n", + "Dressing 2900.0\n", + "Er Retain 300.0\n", + "Extraction 14600.0\n", + "Filling 6500.0\n", + "Filling + X Rays 2600.0\n", + "Injection 1800.0\n", + "Laboratory Test NaN\n", + "Medicine 100.0\n", + "Operation 50000.0\n", + "Orthodontics 240000.0\n", + "Pharmacy 900.0\n", + "Polishing 500.0\n", + "Pop 3700.0\n", + "R.C.T 15500.0\n", + "R.C.T+Crown 8000.0\n", + "R.C.T+Scalling+Crown 9500.0\n", + "R.P.D + Crown 11000.0\n", + "RCT 3000.0\n", + "RCT (4 teeth) Bridge (9 teeth) 48000.0\n", + "Scalling 16500.0\n", + "Scalling+Polishing 4000.0\n", + "Stiches 700.0\n", + "USG 5500.0\n", + "USG Abdomen 1000.0\n", + "USG KUB 1000.0\n", + "X Ray 5800.0" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Question 7\n", + "\n", + "data2 = [data.Procedure,data.TotalCharges]\n", + "data2 = pd.DataFrame(data2)\n", + "data2 = data2.transpose()\n", + "data2['TotalCharges']=pd.to_numeric(data2['TotalCharges'],errors='coerce')\n", + "data2.groupby(data2.Procedure).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9.0 2\n", + "23.0 2\n", + "22.0 4\n", + "21.0 5\n", + "10.0 6\n", + "20.0 8\n", + "11.0 10\n", + "19.0 14\n", + "16.0 15\n", + "17.0 16\n", + "15.0 20\n", + "14.0 20\n", + "12.0 20\n", + "18.0 23\n", + "13.0 29\n", + "Name: Time, dtype: int64\n" + ] + } + ], + "source": [ + "#Question 8\n", + "\n", + "a=pd.to_datetime(data[\"Time\"],errors='coerce')\n", + "print((a.dt.hour.value_counts()).sort_values())" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['Morning',\n", + " 'Morning',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Night',\n", + " 'Morning',\n", + " 'Night',\n", + " 'Night',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'NaT',\n", + " 'Night',\n", + " 'NaT',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'NaT',\n", + " 'NaT',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Night',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Night',\n", + " 'NaT',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Night',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'NaT',\n", + " 'Morning',\n", + " 'NaT',\n", + " 'NaT',\n", + " 'NaT',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'NaT',\n", + " 'NaT',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'NaT',\n", + " 'NaT',\n", + " 'NaT',\n", + " 'NaT',\n", + " 'Evening',\n", + " 'Night',\n", + " 'NaT',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Night',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Night',\n", + " 'Morning',\n", + " 'Morning',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Morning',\n", + " 'Morning',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'NaT',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'NaT',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Night',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Night',\n", + " 'NaT',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Night',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Morning',\n", + " 'Morning',\n", + " 'NaT',\n", + " 'Night',\n", + " 'Morning',\n", + " 'NaT',\n", + " 'Afternoon',\n", + " 'Night',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'NaT',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'NaT',\n", + " 'Morning',\n", + " 'Morning',\n", + " 'Afternoon',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Afternoon',\n", + " 'NaT',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Evening',\n", + " 'NaT',\n", + " 'Afternoon',\n", + " 'NaT',\n", + " 'Evening',\n", + " 'Afternoon',\n", + " 'Night',\n", + " 'Night',\n", + " 'Night',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Morning',\n", + " 'NaT',\n", + " 'NaT',\n", + " 'Afternoon',\n", + " 'Evening',\n", + " 'Morning',\n", + " 'Night']" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Question 9\n", + "\n", + "d = pd.to_datetime(data[\"Time\"],errors='coerce')\n", + "daytime = []\n", + "for i in range(len(data.Time)):\n", + " if d.dt.hour[i] >= 6.0 and d.dt.hour[i] <= 12.0:\n", + " daytime.insert(i,\"Morning\")\n", + " elif d.dt.hour[i] > 12.0 and d.dt.hour[i] <= 16.0:\n", + " daytime.insert(i,\"Afternoon\");\n", + " elif d.dt.hour[i] > 16.0 and d.dt.hour[i] <= 19.0:\n", + " daytime.insert(i,\"Evening\");\n", + " elif d.dt.hour[i] > 19.0:\n", + " daytime.insert(i,\"Night\");\n", + " else:\n", + " daytime.insert(i,\"NaT\")\n", + "data.daytime = daytime\n", + "data.daytime" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "37\n" + ] + } + ], + "source": [ + "#Question 10\n", + "\n", + "count_visits = data.id.value_counts()\n", + "\n", + "count_visits = count_visits[count_visits>1]\n", + "print(len(count_visits))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 12\n", + "46 5\n", + "122 5\n", + "140 4\n", + "94 4\n", + "17 4\n", + "45 3\n", + "101 3\n", + "63 3\n", + "132 3\n", + "114 3\n", + "109 3\n", + "107 3\n", + "145 3\n", + "20 2\n", + "97 2\n", + "59 2\n", + "88 2\n", + "96 2\n", + "112 2\n", + "116 2\n", + "118 2\n", + "25 2\n", + "80 2\n", + "120 2\n", + "40 2\n", + "100 2\n", + "64 2\n", + "4 2\n", + "133 2\n", + "12 2\n", + "13 2\n", + "150 2\n", + "149 2\n", + "151 2\n", + "130 2\n", + "153 2\n", + "Name: id, dtype: int64\n" + ] + } + ], + "source": [ + "#Question 11\n", + "\n", + "print (count_visits)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "id Procedure \n", + "1 Pharmacy 10\n", + "12 22 Unit Bridge 2\n", + "13 Consultation 2\n", + "17 Consultation 2\n", + " RCT (4 teeth) Bridge (9 teeth) 2\n", + "20 Consultation 2\n", + "25 Consultation 2\n", + "45 R.P.D + Crown 2\n", + "46 Dressing 4\n", + "63 Consultation 2\n", + "80 Consultation 2\n", + "94 Injection 3\n", + "97 Consultation 2\n", + "101 C Section 2\n", + "109 R.C.T 2\n", + "112 Operation 2\n", + "114 Consultation 3\n", + "116 X Ray 2\n", + "122 Injection 5\n", + "130 Consultation 2\n", + "140 4 Unit Bridge 2\n", + "145 Crown 3\n", + "151 R.C.T+Scalling+Crown 2\n", + "153 Orthodontics 2\n", + "dtype: int64" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Question 12\n", + "\n", + "patient = data.groupby([\"id\",\"Procedure\"]).size()\n", + "patient = patient[patient>1]\n", + "patient" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Male median: \n", + "27.0\n", + "Female median: \n", + "30.0\n" + ] + } + ], + "source": [ + "#Question 13\n", + "\n", + "print(\"Male median: \")\n", + "print(data.Age[data.Sex == 'M'].median())\n", + "print(\"Female median: \")\n", + "print(data.Age[data.Sex == 'F'].median())" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'np' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[1;31m#Question 14\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mto_replace\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mAmountBalance\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munique\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mAmountBalance\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mAmountBalance\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m','\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m''\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mAmountBalance\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mAmountBalance\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfloat\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'np' is not defined" + ] + } + ], + "source": [ + "#Question 14\n", + "\n", + "data.replace(to_replace = data.AmountBalance.unique()[0], value=np.nan, inplace=True)\n", + "data.AmountBalance=data.AmountBalance.map(lambda x: str(x).replace(',',''))\n", + "data.AmountBalance = data.AmountBalance.astype(float)\n", + "print(data.AmountBalance.sum())" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "83950.0" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Question 15\n", + "\n", + "data.TotalCharges = pd.to_numeric(data.TotalCharges, errors = 'coerce')\n", + "data.TotalCharges[data.Procedure == \"Consultation\"].sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TotalCharges
Age0.056932
\n", + "
" + ], + "text/plain": [ + " TotalCharges\n", + "Age 0.056932" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Question 16\n", + "\n", + "data.corr().loc[['Age'],['TotalCharges']]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nVCQn8QsAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(data.Age,data.TotalCharges)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Question 17\n", + "\n", + "plt.hist(data.Age)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "22300.0" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Question 18\n", + "\n", + "data.TotalCharges[(data.Procedure == \"X Ray\") | (data.Procedure == \"Scalling\")].sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "data.to_csv('CleanData.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/README.md b/README.md index 567c74e..b8b9c32 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,30 @@ -#BUILD DOCKER IMAGE WITH THIS COMMAND +# Docker Assignment 1 -docker build -t . +Assignment docker for ipython notebook usage. +## Getting Started -#RUN DOCKER IMAGE WITH THIS COMMAND +Docker image contains a python assignment 2 with .ipynb file. Contains two csv files. -docker run -p 8888:8888 --rm sh -c "ipython notebook --ip=*" +### Prerequisites + +Need to have docker installed. +Version used is Docker version 17.04.0-ce, build 4845c56. +``` +docker -v +``` + +## Running through Dockerfile + +### Build Image + +``` +docker build -t saba/python . +``` + +### Run Image + +``` +docker run -it -p 8888:8888 saba/python:latest +``` diff --git a/data/hospitaldata.csv b/data/hospitaldata.csv deleted file mode 100644 index d195a06..0000000 --- a/data/hospitaldata.csv +++ /dev/null @@ -1,223 +0,0 @@ -Date,id,Time,Age,Sex,Consulting..Doctor,Specialty,Procedure,Total..Charges,Amount..Received.,Amount..Balance,Amount.Received.By,Amount.in.Hospital,Receptionist..Name,Next.Apt -"Sunday, January 01, 2017",101,11:00,40,F,Dr Kinza Alam,Gynae,C Section,30000,30000, - , Mrs Shamsa ,,Hamza, -"Monday, January 02, 2017",150,10:45AM,26,M,Nursing Staff,,Dressing,1500,1500, - , Dr Saniya ,,Haris, -"Monday, January 02, 2017",58,12:38PM,30,F,Dr Riffat Naheed,Psychotherapist,Consultation,1000,1000, - , Mrs Shamsa ,300,Fiza, -"Monday, January 02, 2017",75,1:00PM,40,M,Dr Riffat Naheed,Psychotherapist,Consultation,1500,1500, - , Mrs Shamsa ,450,Zaheer, -"Monday, January 02, 2017",97,2:45PM,27,M,Dr Riffat Naheed,Psychotherapist,Consultation,2000,2000, - , Mrs Shamsa ,600,Haris, -"Monday, January 02, 2017",101,3:00PM,40,F,Dr Kinza Alam,Gynae,C Section,35000,35000, - , Dr Saniya ,,Haris, -"Monday, January 02, 2017",26,3:28PM,43,M,Dr Saniya,M/o,Consultation,2000,2000, - , Dr Saniya ,,Fiza, -"Monday, January 02, 2017",149,3:45PM,28,F,Dr Fakiha,Dentist,Consultation,500,500, - , Mrs Shamsa ,500,Haris, -"Monday, January 02, 2017",20,3:45PM,2,F,Dr Fakiha,Dentist,Consultation,Cancelled,,,,,, -"Monday, January 02, 2017",72,5:00PM,40,M,Dr Fakiha,Dentist,Consultation,500,500, - , Mrs Shamsa ,500,Fiza, -"Monday, January 02, 2017",54,5:00PM,32,F,Dr Saniya,M/o,Consultation,2000,2000, - , Dr Saniya ,,Fiza, -"Monday, January 02, 2017",149,5:30PM,28,F,Dr Fakiha,Dentist,Filling,2000,2000, - , Mrs Shamsa ,2000,Fiza,In case of pain -"Tuesday, January 03, 2017",120,1:00PM,76,F,Dr Saniya,M/o,Laboratory Test,,, - ,,,Haris, -"Tuesday, January 03, 2017",120,3:25PM,75,F,Dr Saniya,M/o,,Cancelled,,,,,, -"Tuesday, January 03, 2017",20,6:10PM,36,F,Dr Kinza Alam,Gynae,Consultation,1500,1500, - , Mrs Shamsa ,450,Haris, -"Wednesday, January 04, 2017",40,11:45PM,42,F,Dr Alaf Khan,Dentist,Consultation+Denture,1500,1500, - , Brig Farrukh ,,Fiza, -"Wednesday, January 04, 2017",134,12:40PM,23,F,Dr Alaf Khan,Dentist,Consultation,500,500, - , Brig Farrukh ,500,Fiza, -"Wednesday, January 04, 2017",86,8:10PM,48,F,Dr Kinza Alam,Gynae,Consultation,1500,1500, - , Brig Farrukh ,450,Haris, -"Wednesday, January 04, 2017",114,8:30PM,25,F,Dr Kinza Alam,Gynae,Consultation,1000,1000, - , Brig Farrukh ,300,Haris, -"Thursday, January 05, 2017",155,12:40PM,50,F,Dr Alaf Khan,Dentist,Extraction,2000,2000, - , Brig Farrukh ,2000,Fiza, -"Thursday, January 05, 2017",45,2:00PM,60,F,Dr Alaf Khan,Dentist,R.P.D + Crown,4000,4000,, Brig Farrukh ,4000,Haris, -"Thursday, January 05, 2017",4,2:00PM,-,M,Dr Irfan,General Surgeon,Consultation + Dressing,5000,5000, - , Brig Farrukh ,4000,Haris, -"Friday, January 06, 2017",38,12:30PM,-,M,Dr Riffat Naheed,Psychotherapist,Consultation,1000,1000, - , Mrs Shamsa ,300,Haris, -"Friday, January 06, 2017",130,1:00PM,26,M,Dr Riffat Naheed,Psychotherapist,Consultation,1000,1000, - , Mrs Shamsa ,300,Haris, -"Friday, January 06, 2017",97,1:30PM,27,M,Dr Riffat Naheed,Psychotherapist,Consultation,1000,1000, - , Mrs Shamsa ,300,Haris, -"Friday, January 06, 2017",50,-,-,M,Dr Alaf Khan,Dentist,Consultation,500,500, - , Mrs Shamsa ,500,Haris, -"Friday, January 06, 2017",78,8:15PM,57,F,Dr Ali,Orthopedic,Consultation,6000,6000, - , Mrs Shamsa ,3000,Haris, -"Saturday, January 07, 2017",1,,,,Nursing Staff,,Pharmacy,,, - ,,,, -"Monday, January 09, 2017",48,12:36PM,39,F,Dr Alaf Khan,Dentist,Consultation,500,500, - , Mrs Shamsa ,500,Fiza, -"Monday, January 09, 2017",79,1:30PM,6,F,Dr Alaf Khan,Dentist,Consultation,500,500, - , Mrs Shamsa ,500,Fiza, -"Monday, January 09, 2017",116,2:30PM,26,M,Dr Alaf Khan,Dentist,X Ray,300,300, - , Mrs Shamsa ,300,Haris, -"Monday, January 09, 2017",45,3:15PM,60,F,Dr Alaf Khan,Dentist,R.P.D + Crown,7000,7000, - , Mrs Shamsa ,7000,Fiza, -"Monday, January 09, 2017",67,5:20PM,26,M,Dr Alaf Khan,Dentist,Consultation+X Ray,800,800, - , Mrs Shamsa ,800,Fiza, -"Monday, January 09, 2017",36,5:30PM,5,F,Dr Alaf Khan,Dentist,Consultation,250,250, - , Mrs Shamsa ,250,Fiza, -"Tuesday, January 10, 2017",17,3:50PM,40,M,Dr Alaf Khan,Dentist,RCT (4 teeth) Bridge (9 teeth),10000,10000, - , Mrs Shamsa ,,Fiza,1/16/2017 -"Tuesday, January 10, 2017",84,6:00PM,9,F,Dr Irfan,General Surgeon,Consultation + X Ray,3000,3000, - , Mrs Shamsa ,3000,Mona, -"Tuesday, January 10, 2017",1,,,,Nursing Staff,,Pharmacy,,, - ,,,, -"Wednesday, January 11, 2017",57,,30,F,Dr Alaf Khan,Dentist,Laboratory Test,,, - , Mrs Shamsa ,,, -"Wednesday, January 11, 2017",119,3:00PM,40,F,Dr Ammara,Gynae,Consultation + USG,1500,1500, - , Mrs Shamsa ,500,Fiza, -"Wednesday, January 11, 2017",145,4:30PM,29,M,Dr Alaf Khan,Dentist,Crown,3000,3000, - , Mrs Shamsa ,,Fiza, -"Wednesday, January 11, 2017",92,4:30PM,39,F,Dr Alaf Khan,Dentist,Consultation,500,500, - , Mrs Shamsa ,500,Fiza, -"Thursday, January 12, 2017",63,10:45AM,50,M,Dr Alaf Khan,Dentist,Consultation,500,500, - , Mrs Shamsa ,500,Fiza, -"Thursday, January 12, 2017",63,02:00PM,50,M,Dr Alaf Khan,Dentist,Scalling,3000,3000, - , Mrs Shamsa ,3000,Fiza, -"Thursday, January 12, 2017",63,02:00PM,50,M,Brig Asif,Medical Specialist,Consultation,500,500, - , Mrs Shamsa ,150,Fiza, -"Friday, January 13, 2017",45,11:20AM,60,F,Dr Alaf Khan,Dentist,Polishing,500,500, - , Mrs Shamsa ,500,Haris, -"Friday, January 13, 2017",145,3:00PM,29,M,Dr Fakiha,Dentist,Crown,1500,1500, - , Mrs Shamsa ,1500,Fiza, -"Friday, January 13, 2017",70,8:00PM,48,M,Brig Farrukh,Anaesthetist,Consultation,3750,3750, - , Dr Ammad ,3750,Mona, -"Saturday, January 14, 2017",88,4:30PM,45,F,Dr Fakiha,Dentist,Filling + X Rays,2600,2600, - , Dr Ammad ,2600,Haris, -"Saturday, January 14, 2017",40,6:30PM,42,F,Dr Fakiha,Dentist,Denture+Scalling+Filling,5500,5500, - , Dr Ammad ,5500,Haris, -"Sunday, January 15, 2017",42,9:00PM,29,F,Nursing Staff,,Pharmacy,900,900, - , Dilshad ,900,Zaheer, -"Monday, January 16, 2017",7,,26,M,Nursing Staff,,Laboratory Test,,, - ,,,, -"Monday, January 16, 2017",106,1:30PM,34,M,Dr Alaf Khan,Dentist,Crown,5000,5000, - , Dr Ammad ,5000,Fiza, -"Monday, January 16, 2017",22,6:00PM,50,F,Dr Zubair,M/o,Consultation,1000,1000, - , Dr Ammad ,400,Haris, -"Monday, January 16, 2017",88,6:20PM,45,F,Dr Fakiha,Dentist,Extraction,2500,2500, - , Dr Ammad ,2500,Haris,1/23/2017 -"Tuesday, January 17, 2017",52,11:25AM,30,M,Dr Alaf Khan,Dentist,RCT,3000,3000, - , Mrs Shamsa ,3000,Fiza,1/20/2017 -"Tuesday, January 17, 2017",17,11:15AM,40,M,Dr Alaf Khan,Dentist,RCT (4 teeth) Bridge (9 teeth),38000,38000, - , Mrs Shamsa ,38000,Fiza, -"Tuesday, January 17, 2017",17,1:10PM,40,M,Brig Asif,Medical Specialist,Consultation,1000,1000, - , Mrs Shamsa ,300,Haris, -"Tuesday, January 17, 2017",136,3:30PM,29,M,Dr Fakiha,Dentist,Scalling,4000,4000, - , Mrs Shamsa ,4000,Fiza, -"Tuesday, January 17, 2017",27,6:15PM,27,M,Dr Fakiha,Dentist,Filling,2000,2000, - , Mrs Shamsa ,2000,Sohaib,1/19/2017 -"Wednesday, January 18, 2017",71,9:40PM,23,M,Dr Alaf Khan,Dentist,X Ray,300,300, - ,,300,Haris, -"Wednesday, January 18, 2017",12,12:00PM,60,F,Dr Alaf Khan,Dentist,22 Unit Bridge,25500,25500, - ,,25500,Haris, -"Wednesday, January 18, 2017",127,2:00PM,52,F,Dr Alaf Khan,Dentist,Extraction,1000,1000, - ,,1000,Haris, -"Wednesday, January 18, 2017",82,5:00PM,21,M,Dr Zubair,M/o,Consultation,500,500, - ,,500,Haris, -"Thursday, January 19, 2017",103,,32,M,Nursing Staff,,Laboratory Test,,, - ,,,, -"Thursday, January 19, 2017",31,11:00AM,58,f,Dr Alaf Khan,Dentist,Consultation,500,500, - , Mrs Shamsa ,500,Haris, -"Thursday, January 19, 2017",1,,,,Nursing Staff,,Pharmacy,,, - ,,,, -"Thursday, January 19, 2017",1,,,,Nursing Staff,,Pharmacy,,, - ,,,, -"Friday, January 20, 2017",1,,,,Nursing Staff,,Pharmacy,,, - ,,,, -"Saturday, January 21, 2017",131,10:15AM,26,F,Dr Alaf Khan,Dentist,X Ray,300,300, - , Mrs Shamsa ,300,Haris, -"Saturday, January 21, 2017",101,1:20PM,40,F,Dr Kinza Alam,Gynae,Consultation,1200,1200, - , Mrs Shamsa ,360,Haris, -"Saturday, January 21, 2017",145,1:30PM,29,M,Dr Fakiha,Dentist,Crown,500,500, - , Mrs Shamsa ,500,Haris, -"Monday, January 23, 2017",144,12:15PM,33,M,Dr Riffat Naheed,Psychotherapist,Consultation,1000,1000, - , Mrs Shamsa ,300,Haris, -"Monday, January 23, 2017",37,1:00PM,30,F,Dr Riffat Naheed,Psychotherapist,Consultation,1000,1000, - , Mrs Shamsa ,300,Haris, -"Monday, January 23, 2017",135,1:15PM,28,F,Dr Riffat Naheed,Psychotherapist,Consultation,2000,2000, - , Mrs Shamsa ,600,Haris, -"Monday, January 23, 2017",59,4:50PM,10,M,Dr Ali,Child Specialist,Consultation+ER Retain,2800,2800, - , Mrs Shamsa ,1600,Haris, -"Tuesday, January 24, 2017",130,1:00PM,26,M,Dr Riffat Naheed,Psychotherapist,Consultation,800,800, - , Mrs Shamsa ,240,Haris, -"Tuesday, January 24, 2017",104,1:15PM,19,M,Dr Riffat Naheed,Psychotherapist,Consultation,2000,2000, - , Mrs Shamsa ,600,Haris, -"Tuesday, January 24, 2017",98,2:10PM,53,F,Dr Saad,Orthopedic,Consultation,1000,1000, - , Mrs Shamsa ,600,Haris, -"Tuesday, January 24, 2017",102,1:30PM,30,M,Dr Riffat Naheed,Psychotherapist,Consultation,1000,1000, - , Mrs Shamsa ,300,Haris, -"Wednesday, January 25, 2017",59,,10,M,Nursing Staff,,Laboratory Test,,, - ,,,, -"Wednesday, January 25, 2017",1,,,,Nursing Staff,,Pharmacy,,, - ,,,, -"Thursday, January 26, 2017",73,12:50PM,55,M,Dr Alaf Khan,Dentist,Consultation+X Ray,700,700, - ,,700,Haris, -"Thursday, January 26, 2017",116,3:30PM,26,M,Dr Alaf Khan,Dentist,X Ray,300,300, - ,,300,Haris, -"Thursday, January 26, 2017",125,5:40PM,30,F,Dr Alaf Khan,Dentist,Consultation,500,500, - ,,500,Haris, -"Thursday, January 26, 2017",1,,,,Nursing Staff,,Pharmacy,,, - ,,,, -"Thursday, January 26, 2017",1,,,,Nursing Staff,,Pharmacy,,, - ,,,, -"Thursday, January 26, 2017",1,,,,Nursing Staff,,Pharmacy,,, - ,,,, -"Saturday, January 28, 2017",129,,28M,M,Dr Ali,Child Specialist,Consultation,1150,1150, - , Mrs Shamsa ,,Sohaib, -"Saturday, January 28, 2017",85,6:45PM,,F,Dr Irfan,General Surgeon,,3000,3000, - , Mrs Shamsa ,,Sohaib, -"Saturday, January 28, 2017",147,9:45PM,9,M,Nursing Staff,,Consultation,1000,1000, - , Mrs Shamsa ,,Sub KB, -"Sunday, January 29, 2017",1,,,,Nursing Staff,,Pharmacy,,, - ,,,, -"Monday, January 30, 2017",140,1:00PM,28,F,Dr Alaf Khan,Dentist,Consultation,500,500, - , Dr Ammad ,500,Haris, -"Monday, January 30, 2017",39,1:30PM,47,M,Dr Alaf Khan,Dentist,X Ray,300,300, - , Dr Ammad ,300,Haris, -"Monday, January 30, 2017",124,5:40PM,49,F,Brig Asif,Medical Specialist,Consultation+ECG,1300,1300, - , Dr Ammad ,600,Sohaib, -"Monday, January 30, 2017",8,5:35PM,19,M,Dr Qurat ul Ain,Dentist,Consultation+X Ray,800,800, - , Dr Ammad ,800,Sohaib, -"Monday, January 30, 2017",51,6:00PM,31,M,Dr Qurat ul Ain,Dentist,Consultation,500,500, - , Dr Ammad ,500,Sohaib, -"Tuesday, January 31, 2017",152,5:30PM,7,F,Dr Fakiha,Dentist,Filling,1000,1000, - , Mrs Shamsa ,1000,Haris, -"Tuesday, January 31, 2017",21,6:30PM,26,M,Dr Zubair,M/o,Consultation,200,200, - , Mrs Shamsa ,200,Mona, -"Tuesday, January 31, 2017",115,6:50PM,8,F,Dr Qurat ul Ain,Dentist,Extraction,1500,1500, - , Mrs Shamsa ,1500,Haris, -"Wednesday, February 01, 2017",109,2:10PM,28,F,Dr Alaf Khan,Dentist,R.C.T,2000,2000, - , Dr Ammad ,2000,Haris,2/6/2017 -"Wednesday, February 01, 2017",153,2:10PM,17,F,Dr Alaf Khan,Dentist,Orthodontics,10000,10000,, Dr Ammad ,10000,Haris,2/6/2017 -"Wednesday, February 01, 2017",62,1:00PM,54,M,Dr Alaf Khan,Dentist,Scalling,2000,2000, - , Dr Ammad ,2000,Haris, -"Wednesday, February 01, 2017",111,1:40PM,35,F,Col Ulfat Ellahi,ENT,Consultation,1000,1000, - , Dr Ammad ,300,Haris, -"Wednesday, February 01, 2017",142,6:00PM,45,M,Dr Qurat ul Ain,Dentist,Extraction,2000,2000, - , Dr Ammad ,2000,Haris, -"Thursday, February 02, 2017",117,12:00PM,30,F,Dr Shireen,M/o,Consultation,500,500, - , Dr Ammad ,500,Haris, -"Thursday, February 02, 2017",140,1:00PM,30,F,Dr Alaf Khan,Dentist,Extraction,1000,1000, - , Dr Ammad ,1000,Haris, -"Thursday, February 02, 2017",100,1:25PM,23,F,Dr Alaf Khan,Dentist,Consultation,500,500, - , Dr Ammad ,500,Haris, -"Friday, February 03, 2017",133,4:45PM,27,F,Dr Alaf Khan,Dentist,X Ray,500,500, - , Dr Ammad ,500,Haris, -"Friday, February 03, 2017",44,8:00PM,6,M,Dr Ali,Child Specialist,Consultation,1000,1000, - , Dr Ammad ,300,Haris, -"Saturday, February 04, 2017",35,4:00PM,2,F,Dr Qurat ul Ain,Dentist,Consultation,500,500, - , Dr Ammad ,500,Haris, -"Saturday, February 04, 2017",150,4:00PM,30,M,Dr Qurat ul Ain,Dentist,Consultation,500,500, - , Dr Ammad ,500,Haris, -"Monday, February 06, 2017",118,7:30PM,32,F,Dr Kinza Alam,Gynae,Consultation+USG,1500,1500, - , Dr Ammad ,800,Haris, -"Monday, February 06, 2017",114,7:45PM,25,F,Dr Kinza Alam,Gynae,Consultation,1000,1000, - , Dr Ammad ,300,Haris, -"Monday, February 06, 2017",49,1:30PM,80,M,Dr Ali,Child Specialist,Consultation+Retain,3500,3500, - , Dr Ammad ,2000,Haris, -"Monday, February 06, 2017",126,1:30PM,70,F,Dr Alaf Khan,Dentist,Scalling,3000,3000, - , Dr Ammad ,3000,Haris, -"Monday, February 06, 2017",141,4:00PM,20,M,Dr Riffat Naheed,Psychotherapist,Consultation,2000,2000, - , Dr Ammad ,600,Haris, -"Monday, February 06, 2017",17,6:15PM,23,M,Dr Ammad,M/o,Consultation,200,200, - , Dr Ammad ,200,Haris, -"Tuesday, February 07, 2017",12,12:00PM,60,F,Dr Alaf Khan,Dentist,22 Unit Bridge,44000,30000,"14,000.00", Dr Ammad ,30000,Haris,2/14/2017 -"Tuesday, February 07, 2017",60,1:10PM,50,M,Dr Alaf Khan,Dentist,Consultation,500,500, - , Dr Ammad ,500,Haris, -"Tuesday, February 07, 2017",140,2:15PM,30,F,Dr Alaf Khan,Dentist,4 Unit Bridge,3000,3000, - , Dr Ammad ,3000,Haris, -"Tuesday, February 07, 2017",41,6:00PM,13,M,Dr Qurat ul Ain,Dentist,X Ray,500,500, - , Dr Ammad ,500,Haris, -"Tuesday, February 07, 2017",87,8:00PM,30,F,Dr Qurat ul Ain,Dentist,Consultation,500,500, - , Dr Ammad ,500,Haris, -"Wednesday, February 08, 2017",132,10:13AM,13,M,Dr Alaf Khan,Dentist,Consultation,500,500, - , Dr Ammad ,500,Haris,2/17/2017 -"Wednesday, February 08, 2017",132,12:00PM,13,M,Dr Alaf Khan,Dentist,R.C.T,3500,3500, - , Dr Ammad ,3500,Haris, -"Wednesday, February 08, 2017",13,12:00PM,39,F,Dr Saad,Orthopedic,Consultation,1000,1000, - , Dr Ammad ,300,Haris, -"Wednesday, February 08, 2017",109,2:40PM,28,F,Dr Alaf Khan,Dentist,R.C.T,2000,2000, - , Dr Ammad ,2000,Haris, -"Wednesday, February 08, 2017",109,2:40PM,28,F,Dr Alaf Khan,Dentist,Crown,3000,,"3,000.00", Dr Ammad ,,Haris,2/16/2017 -"Wednesday, February 08, 2017",153,2:40PM,17,F,Dr Alaf Khan,Dentist,Orthodontics,110000,20000,"90,000.00", Dr Ammad ,20000,Haris,2/16/2017 -"Wednesday, February 08, 2017",43,10:00AM,27,M,Dr Alaf Khan,Dentist,Consultation+X Ray,800,800, - , Dr Ammad ,800,Haris,2/9/2017 -"Friday, February 10, 2017",5,9:30AM,57,M,Dr Alaf Khan,Dentist,X Ray,300,300, - , Dr Ammad ,300,Haris, -"Friday, February 10, 2017",14,6:30PM,6,M,Nursing Staff,,X Ray,300,300, - , Dr Ammad ,300,Haris, -"Friday, February 10, 2017",123,7:00PM,18,M,Dr Qurat ul Ain,Dentist,Filling,1500,1500, - , Dr Ammad ,1500,Haris, -"Saturday, February 11, 2017",137,12:00PM,25,M,Dr Ali,Child Specialist,Consultation,1000,1000, - , Mrs Shamsa ,300,Mona, -"Saturday, February 11, 2017",91,4:20PM,50,F,Dr Qurat ul Ain,Dentist,Scalling,2500,2500, - , Mrs Shamsa ,2500,Mona, -"Saturday, February 11, 2017",23,5:57PM,,F,Dr Qurat ul Ain,Dentist,Consultation,1000,1000, - , Mrs Shamsa ,1000,Mona, -"Saturday, February 11, 2017",154,6:15PM,19,F,Dr Qurat ul Ain,Dentist,Scalling,2000,2000, - , Mrs Shamsa ,2000,Mona, -"Sunday, February 12, 2017",112,7:15PM,39,M,Dr Saad,Orthopedic,Operation,35000,35000, - , Mrs Shamsa ,35000,Haris, -"Sunday, February 12, 2017",81,12:00PM,6,F,Dr Alaf Khan,Dentist,Consultation+X Ray,700,700, - , Mrs Shamsa ,700,Mona, -"Monday, February 13, 2017",15,11:20AM,40,M,Dr Waqar Azeem,Radiologist,USG Abdomen,1000,1000, - , Dr Ammad ,300,Haris, -"Monday, February 13, 2017",112,3:40PM,39,M,Dr Saad,Orthopedic,Operation,15000,15000, - , Dr Ammad ,15000,Haris, -"Monday, February 13, 2017",9,7:00PM,20,F,Dr Qurat ul Ain,Dentist,Consultation,500,500, - , Dr Ammad ,500,Haris, -"Monday, February 13, 2017",2,,-,-,Dr Ali,Child Specialist,Consultation,1500,1500, - , Dr Ammad ,500,Haris, -"Tuesday, February 14, 2017",113,2:30PM,14,M,Dr Saad Riaz,Orthopedic,Pop,3700,3700, - , Dr Ammad ,1700,Haris, -"Tuesday, February 14, 2017",4,3:00PM,-,M,Nursing Staff,,Er Retain,300,300, - , Dr Ammad ,300,Haris, -"Tuesday, February 14, 2017",19,7:02PM,6M,F,Dr Waqar Azeem,Radiologist,USG,2000,2000, - , Dr Ammad ,1300,Haris, -"Wednesday, February 15, 2017",118,11:40AM,24,F,Dr Alaf Khan,Dentist,X Ray,400,400, - , Mrs Shamsa ,400,Mona, -"Wednesday, February 15, 2017",94,4:45PM,3,M,Dr Ali,Child Specialist,Consultation + Nebulize,1150,1150, - ," 150 Mrs Shamsa, 300 Dr Ammad ",450,Haris, -"Wednesday, February 15, 2017",64,6:15PM,23,M,Dr Ammad,M/o,Consultation,200,200, - , Dr Ammad ,200,Haris, -"Friday, February 17, 2017",29,4:10PM,29,M,Dr Alaf Khan,Dentist,X Ray,200,200, - , Dr Ammad ,200,Haris, -"Friday, February 17, 2017",66,5:30PM,55,M,Dr Alaf Khan,Dentist,Extraction,1000,1000, - , Dr Ammad ,1000,Haris, -"Friday, February 17, 2017",107,6:30PM,30,F,Nursing Staff,,X Ray,1000,1000, - , Dr Ammad ,1000,Haris, -"Saturday, February 18, 2017",108,6:20PM,,M,Dr Ali,Child Specialist,Consultation,3000,3000, - , Dr Ammad ,1600,Saima, -"Saturday, February 18, 2017",30,6:10PM,30,F,Dr Qurat ul Ain,Dentist,Extraction,1500,1500, - , Dr Ammad ,1500,Mona, -"Saturday, February 18, 2017",94,11:30AM,3,M,Nursing Staff,,Injection,300,300, - , Dr Ammad ,300,Saima, -"Sunday, February 19, 2017",55,2:45PM,,M,Dr Qurat ul Ain,Dentist,X Ray,300,300, - , Dr Ammad ,300,Saima, -"Monday, February 20, 2017",132,,13,M,Dr Alaf Khan,Dentist,Crown,5000,5000, - , Dr Ammad ,5000,,2/24/2017 -"Monday, February 20, 2017",68,1:25PM,10,M,Dr Shireen,M/o,Stiches,700,700, - , Dr Ammad ,700,Saima, -"Monday, February 20, 2017",80,2:00PM,30,F,Dr Shireen,M/o,Consultation,1200,1200, - , Dr Ammad ,1200,Saima, -"Monday, February 20, 2017",99,7:00PM,45,F,Dr Saima Shams,Radiologist,USG,1500,1500, - , Dr Ammad ,900,Mona, -"Monday, February 20, 2017",94,10:15PM,3,M,Nursing Staff,,Injection,300,300, - , Dr Ammad ,300,Ashfaq, -"Tuesday, February 21, 2017",151,1:00PM,38,M,Dr Alaf Khan,Dentist,R.C.T+Scalling+Crown,5000,5000, - , Dr Ammad ,5000,Saima,2/28/2017 -"Tuesday, February 21, 2017",53,6:00PM,20,F,Dr Waqar Azeem,Radiologist,USG,1000,1000, - , Dr Ammad ,400,Mona, -"Tuesday, February 21, 2017",11,7:11PM,2,F,Dr Ali,Child Specialist,Consultation,1000,1000, - , Dr Ammad ,300,Saima, -"Tuesday, February 21, 2017",94,10:10PM,3,M,Nursing Staff,,Injection,300,300, - , Dr Ammad ,300,Sub KB, -"Tuesday, February 21, 2017",64,-,,,Nursing Staff,,Medicine,100,100, - ,,100,Saima, -"Wednesday, February 22, 2017",100,3:00PM,23,F,Dr Alaf Khan,Dentist,Orthodontics,120000,30000,"90,000.00", Dr Ammad ,30000,Mona, -"Wednesday, February 22, 2017",16,4:30PM,26,M,Dr Mumtaz,General Surgeon,Consultation,1000,1000, - , Dr Ammad ,500,Mona, -"Wednesday, February 22, 2017",6,5:00PM,35,M,Dr Waqar Azeem,Radiologist,USG,1000,1000, - , Dr Ammad ,400,Mona, -"Thursday, February 23, 2017",33,1:55PM,22,M,Dr Alaf Khan,Dentist,R.C.T,3000,3000, - , Dr Ammad ,3000,Saima, -"Thursday, February 23, 2017",89,1:50PM,65,F,Dr Saad Riaz,Orthopedic,Consultation,1000,1000, - , Dr Ammad ,500,Saima, -"Thursday, February 23, 2017",13,2:00PM,45,F,Dr Saad Riaz,Orthopedic,Consultation,1000,1000, - , Dr Ammad ,300,Saima, -"Thursday, February 23, 2017",47,3:00PM,21,F,Dr Riffat Naheed,Psychotherapist,Consultation,1500,1500, - , Dr Ammad ,700,Saima, -"Friday, February 24, 2017",80,9:30PM,30,F,Dr Mehwish,Gynae,Consultation,1000,1000, - , Dr Ammad ,500,Saima, -"Saturday, February 25, 2017",128,3:45PM,64,F,Dr Qurat ul Ain,Dentist,Consultation,500,500, - , Dr Ammad ,500,Saima, -"Saturday, February 25, 2017",93,4:00PM,40,F,Dr Ali,Child Specialist,,3000,3000, - , Dr Ammad ,1600,Saima, -"Monday, February 27, 2017",143,11:30AM,52,F,Dr Alaf Khan,Dentist,Consultation,500,500, - , Dr Ammad ,500,Saima, -"Monday, February 27, 2017",56,12:20PM,55,F,Dr Alaf Khan,Dentist,Extraction,600,600, - , Dr Ammad ,600,Saima, -"Monday, February 27, 2017",96,-,54,M,Dr Qurat ul Ain,Dentist,Consultation,500,500, - , Dr Ammad ,500,Saima, -"Tuesday, February 28, 2017",65,10:30PM,30,M,Nursing Staff,,BSR,50,50, - , Dr Ammad ,50,Haris, -"Tuesday, February 28, 2017",96,12:40PM,53,M,Dr Alaf Khan,Dentist,8 Unit Bridge+2 R.C.T,30000,8000,"22,000.00", Dr Ammad ,8000,Haris, -"Tuesday, February 28, 2017",90,,,F,Dr Alaf Khan,Dental,Consultation,1000,1000, - , Dr Ammad ,1000,Saima, -"Tuesday, February 28, 2017",151,3:00PM,38,F,Dr Alaf Khan,Dentist,R.C.T+Scalling+Crown,4500,4500, - , Dr Ammad ,4500,Haris, -"Tuesday, February 28, 2017",139,8:00PM,30,M,Nursing Staff,,X Ray,500,500, - , Dr Ammad ,500,Saima, -"Wednesday, March 01, 2017",107,5:00PM,17,F,Dr Qurat ul Ain,Dentist,Extraction,1500,1500, - , Dr Ammad ,1500,Saima, -"Wednesday, March 01, 2017",28,6:00PM,3,F,Dr Qurat ul Ain,Dentist,Consultation,500,500, - , Dr Ammad ,500,Saima, -"Wednesday, March 01, 2017",46,-,17,M,Nursing Staff,,Dressing,500,500, - , Dr Ammad ,200,Saima, -"Wednesday, March 01, 2017",25,7:00PM,-,F,Dr Kinza Alam,Gynae,Consultation,1500,1500, - , Dr Ammad ,500,Saima, -"Wednesday, March 01, 2017",24,7:10PM,-,M,Dr Ammad,M/o,Consultation,500,500, - , Dr Ammad ,500,Saima, -"Thursday, March 02, 2017",140,12:48PM,30,F,Dr Alaf Khan,Dentist,4 Unit Bridge,8000,8000, - , Dr Ammad ,8000,Saima, -"Thursday, March 02, 2017",46,3:00PM,17,M,Nursing Staff,,Injection,50,50, - , Dr Ammad ,50,Saima, -"Thursday, March 02, 2017",114,7:05PM,26,F,Dr Kinza Alam,Gynae,Consultation,1000,1000, - , Dr Ammad ,300,Saima, -"Thursday, March 02, 2017",3,-,-,-,Nursing Staff,,Dressing,100,100, - , Dr Ammad ,100,Saima, -"Friday, March 03, 2017",138,11:20AM,45,F,Dr Alaf Khan,Dentist,Consultation,500,500, - , Dr Ammad ,500,Saima, -"Friday, March 03, 2017",107,12:30PM,17,F,Dr Alaf Khan,Dentist,R.C.T+Crown,8000,8000, - , Dr Ammad ,8000,Saima,3/9/2017 -"Friday, March 03, 2017",34,1:30PM,22,M,Dr Alaf Khan,Dentist,Crown,2000,2000, - , Dr Ammad ,2000,Saima,3/8/2017 -"Friday, March 03, 2017",133,4:10PM,30,F,Dr Ali,Child Specialist,Consultation,1000,1000, - , Dr Ammad ,300,Saima, -"Friday, March 03, 2017",46,5:45PM,17,M,Nursing Staff,,Dressing,300,300, - , Dr Ammad ,300,Saima, -"Friday, March 03, 2017",74,2:40PM,38,M,Dr Waqar Azeem,Radiologist,USG KUB,1000,1000, - , Dr Ammad ,300,Sub KB, -"Sunday, March 05, 2017",46,-,17,M,Nursing Staff,,Dressing,300,300, - , Dr Ammad ,200,Saima, -"Monday, March 06, 2017",83,1:20PM,34,M,Dr Alaf Khan,Dentist,Consultation,500,500, - , Dr Ammad ,500,Saima, -"Monday, March 06, 2017",61,5:30PM,28,F,Dr Qurat ul Ain,Dentist,Consultation+X Ray,950,950, - , Dr Ammad ,950,Haris, -"Monday, March 06, 2017",122,7:00PM,78,M,Nursing Staff,,Injection,100,100, - , Dr Ammad ,100,Saima, -"Tuesday, March 07, 2017",95,-,56,M,Dr Alaf Khan,Dentist,X Ray,300,300, - , Dr Ammad ,300,Saima, -"Tuesday, March 07, 2017",69,3:00PM,53,M,Dr Alaf Khan,Dentist,,15000,15000, - , Dr Ammad ,15000,Mona, -"Tuesday, March 07, 2017",146,-,21,M,Dr Ammad,M/o,Consultation,500,500, - , Dr Ammad ,500,Saima, -"Tuesday, March 07, 2017",46,7:40PM,17,M,Nursing Staff,,Dressing,200,200, - , Dr Ammad ,200,Saima, -"Tuesday, March 07, 2017",32,2:00PM,,F,Nursing Staff,,Coupety,300,300, - , Dr Ammad ,300,Saima, -"Tuesday, March 07, 2017",122,9:35PM,78,M,Nursing Staff,,Injection,100,100, - , Dr Ammad ,100,Sub KB, -"Wednesday, March 08, 2017",148,8:30PM,3,F,Nursing Staff,,Injection,100,100, - , Dr Ammad ,100,Ashfaq, -"Wednesday, March 08, 2017",122,10:00PM,76,M,Nursing Staff,,Injection,100,100, - , Dr Ammad ,100,Ashfaq, -"Wednesday, March 08, 2017",10,4:45PM,9,F,Dr Qurat ul Ain,Dentist,Consultation+x Ray,650,650, - , Dr Ammad ,650,Saima, -"Wednesday, March 08, 2017",76,6:55PM,32,M,Dr Paul,Dermatologist,Consultation,1500,1000,500, Dr Ammad ,300,Mona, -"Wednesday, March 08, 2017",1,12:00PM,,F,Nursing Staff,,Injection,150,150, - , Dr Ammad ,150,Mona, -"Wednesday, March 08, 2017",25,7:30PM,-,F,Dr Kinza Alam,Gynae,Consultation,1500,1500, - , Dr Ammad ,500,Mona, -"Thursday, March 09, 2017",77,12:00PM,24,M,Dr Alaf Khan,Dentist,R.C.T,5000,2000,"3,000.00", Dr Ammad ,2000,Haris,3/16/2017 -"Thursday, March 09, 2017",121,9:00AM,3,F,Nursing Staff,,Injection,100,100, - , Dr Ammad ,100,Mona, -"Thursday, March 09, 2017",122,,76,M,Nursing Staff,,Injection,100,100, - , Dr Ammad ,100,Mona, -"Thursday, March 09, 2017",1,,,,Nursing Staff,,Cancelled,,, - , Dr Ammad ,,Saima, -"Thursday, March 09, 2017",18,3:30PM,39,M,Dr Alaf Khan,Dentist,Scalling+Polishing,4000,4000, - , Dr Ammad ,4000,Saima, -"Thursday, March 09, 2017",110,6:00PM,30,M,Dr Qurat ul Ain,Dentist,Consultation,200,200, - , Dr Ammad ,200,Saima, -"Friday, March 10, 2017",122,10:20AM,76,M,Nursing Staff,,Injection,100,100, - , Dr Ammad ,100,Zaheer, -"Friday, March 10, 2017",105,11:20PM,45,F,Dr Shireen,M/o,Consultation,800,800, - , Dr Ammad ,800,Mona, diff --git a/dockerfile b/dockerfile deleted file mode 100644 index ba8d249..0000000 --- a/dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM ipython/notebook - -RUN pip install pandas -RUN pip install datetime -RUN mkdir /Assignment_Docker -WORKDIR /Assignment_Docker -RUN mkdir ./files ./data - -COPY files/*.ipynb ./files/ -COPY data/* ./data/ - -WORKDIR /Assignment_Docker/files/ diff --git a/files/saadkhan_khi_python_assignment2.ipynb b/files/saadkhan_khi_python_assignment2.ipynb deleted file mode 100644 index 260769f..0000000 --- a/files/saadkhan_khi_python_assignment2.ipynb +++ /dev/null @@ -1,172 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import datetime\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "\n", - "df=pd.read_csv(\"hospitaldata.csv\")\n", - "\n", - "#Question 01\n", - "print(\"Question 01\")\n", - "df.columns=[names.replace('.', '') for names in list(df)]\n", - "print(df.columns)\n", - "\n", - "#Cleaning Dataset\n", - "df.Date=pd.to_datetime(df.Date)\n", - "\n", - "#Some of the data in age column contains value for months like 6M and 28M, we have to convert those values to years\n", - "df.loc[(df[\"Age\"]!='nan') &(df[\"Age\"].str.contains(\"M\")),\"Age\"]=df.loc[(df[\"Age\"]!='nan') &(df[\"Age\"].str.contains(\"M\")),\"Age\"].apply(lambda x: str( round(float(float(str(x).replace(\"M\",\"\"))/12),1) ))\n", - "\n", - "\n", - "df.Age=pd.to_numeric(df.Age,errors=\"coerce\")\n", - "df.Age=df.Age.fillna(0)\n", - "df.AmountBalance=df[\"AmountBalance\"].str.strip()\n", - "df.AmountBalance=df[\"AmountBalance\"].str.replace(\"-\",'nan')\n", - "df.AmountBalance=df[\"AmountBalance\"].str.replace(\",\", \"\").astype(float)\n", - "\n", - "df.loc[:,\"Sex\"]=df.loc[:,\"Sex\"].replace(\"-\",float('nan'))\n", - "df[\"Sex\"]=df[\"Sex\"].str.upper()\n", - "df.TotalCharges=pd.to_numeric(df.TotalCharges,errors=\"coerce\")\n", - "df.Time = pd.to_datetime(df.Time,errors=\"coerce\",format=\"%I:%M%p\")\n", - "\n", - "df.NextApt = pd.to_datetime(df.NextApt,errors=\"coerce\", format=\"%m/%d/%Y\")\n", - "\n", - "\n", - "#df.AmountReceivedBy=df.AmountReceivedBy.apply(lambda x: str(x).replace('\\d+', ''))\n", - "\n", - "#Question 02: Which day of the weeks has more visits?\n", - "print(\"Question 02\")\n", - "print(df.Date.dt.weekday_name.value_counts().idxmax())\n", - "\n", - "#Question 03: Average age of patients\n", - "print(\"Question 03\")\n", - "print(round(df.Age.mean(),0))\n", - "\n", - "#Question 04: Num of visits by childeren\n", - "print(\"Question 04\")\n", - "print(len(df[(df[\"Age\"]>1) & (df[\"Age\"]<=12)]))\n", - "\n", - "\n", - "#Question 05: Which gender type had what kind of procedure in abundance?\n", - "print(\"Question 05\")\n", - "print(df.groupby(['Sex']).apply(lambda x: x['Procedure'].value_counts().idxmax()))\n", - "\n", - "#Question 06: Which Doctor is earning highest\n", - "print(\"Question 06\")\n", - "print(df.groupby(['ConsultingDoctor'])[\"TotalCharges\"].sum().idxmax())\n", - "\n", - "#Question 07: Which Procedure type earns more money\n", - "print(\"Question 07\")\n", - "print(df.groupby(['Procedure'])[\"TotalCharges\"].sum().idxmax())\n", - "\n", - "#Question 08: Which time of the day has highest frequency of visits by hour?\n", - "print(\"Question 08\")\n", - "print(datetime.datetime.strptime(str(df.Time.dt.hour.value_counts().idxmax()), '%H.%M').strftime(\"%I:%M %p\"))\n", - "\n", - "#Question 09: Create a bracket of time by Morning, Afternoon, Evening, Night (6am – 12pm – Morning, 12 pm- 4 pm, Afternoon, 4 pm- 7pm, Evening, 7pm – 6 am, Night).\n", - "print(\"Question 09\")\n", - "df.loc[(df.Time >= datetime.datetime.strptime('06:00AM', '%I:%M%p') ) & (df.Time <= datetime.datetime.strptime('12:00PM', '%I:%M%p')), 'TimeBracket'] = \"Morning\"\n", - "df.loc[(df.Time >= datetime.datetime.strptime('12:00PM', '%I:%M%p') ) & (df.Time <= datetime.datetime.strptime('04:00PM', '%I:%M%p')), 'TimeBracket'] = \"Afternoon\"\n", - "df.loc[(df.Time >= datetime.datetime.strptime('04:00PM', '%I:%M%p') ) & (df.Time <= datetime.datetime.strptime('07:00PM', '%I:%M%p')), 'TimeBracket'] = \"Evening\"\n", - "df.loc[(df.Time >= datetime.datetime.strptime('07:00PM', '%I:%M%p') ) & (df.Time <= datetime.datetime.strptime('06:00AM', '%I:%M%p')), 'TimeBracket'] = \"Night\"\n", - "\n", - "#Question 10: How many patients are repeated visitors?\n", - "print(\"Question 10\")\n", - "print(len(df.id.value_counts()[df.id.value_counts()>1].index))\n", - "\n", - "#Question 11: Give us the id of repeated visitors.\n", - "print(\"Question 11\")\n", - "print(df.id.value_counts()[df.id.value_counts()>1].index)\n", - "\n", - "#Question 12: Which patients visited again for the same problem?\n", - "print(\"Question 12\")\n", - "print(list(df.groupby(\"id\")[\"Specialty\"].value_counts()[df.groupby(\"id\")[\"Specialty\"].value_counts()>1].index))\n", - "\n", - "#Question 13: What is the median age for Females and Males?\n", - "print(\"Question 13\")\n", - "print(df.groupby(\"Sex\")[\"Age\"].median())\n", - "\n", - "#Question 14: What is the total amount in balance?\n", - "print(\"Question 14\")\n", - "print(df.AmountBalance.sum())\n", - "\n", - "#Question 15: How much money was made by Procedure Type “Consultation”?\n", - "print(\"Question 15\")\n", - "print(df[df[\"Procedure\"]==\"Consultation\"].groupby(\"Procedure\")[\"AmountReceived\"].sum())\n", - "\n", - "#Question 16: Is there a relation between Age and Total Charges paid?\n", - "print(\"Question 16\")\n", - "print(df.loc[:,[\"Age\",\"TotalCharges\"]].corr())\n", - "\n", - "#Question 17: Which Age group had highest number of visits?\n", - "print(\"Question 17\")\n", - "print(df[df[\"Age\"]!=0].Age.value_counts().idxmax())\n", - "\n", - "#Question 18: What is the total cost earned by Procedure Type X Ray and Scalling together?\n", - "print(\"Question 18\")\n", - "print(sum(list(df[(df[\"Procedure\"]==\"X Ray\") | (df[\"Procedure\"]==\"Scalling\")].groupby(\"Procedure\")[\"AmountReceived\"].sum())))\n", - "\n", - "\n", - "#Creating a clean csv dataset file\n", - "df.to_csv(\"clean_hospitaldata.csv\",sep=\",\")\n", - "print(\"File created successfully\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.6.0" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}