{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from collections import Counter\n", "\n", "import math\n", "import re\n", "\n", "from pandas import read_excel\n", "from pymongo import MongoClient\n", "from pyquery import PyQuery as pq\n", "from scipy import stats\n", "\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "SHEETS = (\n", " (\"台灣大學醫學院附設醫院_201601-201809.xls\", \"Sheet1\"), \n", ")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "frames = []" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "for file_name, sheet_name in SHEETS:\n", " data = read_excel(file_name, sheet_name)\n", " frames.append(data)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "df=pd.concat(frames, ignore_index=True, sort=False)\n", "df.to_excel('concat2.xls')" ] }, { "cell_type": "code", "execution_count": 14, "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", "
醫院醫師系統編號病患姓名簽署日key-in日患者出生年月日患者狀況流失/停藥日期用藥時間病患是否參加P1NP
是否自費
健保給付808080808080808043800
自費2712712712712712712712711872711
\n", "
" ], "text/plain": [ " 醫院 醫師 系統編號 病患姓名 簽署日 key-in日 患者出生年月日 患者狀況 流失/停藥日期 用藥時間 \\\n", "是否自費 \n", "健保給付 80 80 80 80 80 80 80 80 43 80 \n", "自費 271 271 271 271 271 271 271 271 187 271 \n", "\n", " 病患是否參加P1NP \n", "是否自費 \n", "健保給付 0 \n", "自費 1 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# print(df['是否自費'])\n", "df.groupby('是否自費').count()" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
用藥時間系統編號
countmeanstdmin25%50%75%maxcountmeanstdmin25%50%75%max
是否自費
健保給付80.012.3348217.3265340.1428576.45535712.39285718.65178624.080.040738.8750003719.02218135494.037584.040289.544118.7547796.0
自費271.07.4500536.2004200.2142862.7321435.64285710.16071424.0271.041558.9372693793.11138735258.038007.041723.044780.0047792.0
\n", "
" ], "text/plain": [ " 用藥時間 \\\n", " count mean std min 25% 50% 75% \n", "是否自費 \n", "健保給付 80.0 12.334821 7.326534 0.142857 6.455357 12.392857 18.651786 \n", "自費 271.0 7.450053 6.200420 0.214286 2.732143 5.642857 10.160714 \n", "\n", " 系統編號 \\\n", " max count mean std min 25% 50% \n", "是否自費 \n", "健保給付 24.0 80.0 40738.875000 3719.022181 35494.0 37584.0 40289.5 \n", "自費 24.0 271.0 41558.937269 3793.111387 35258.0 38007.0 41723.0 \n", "\n", " \n", " 75% max \n", "是否自費 \n", "健保給付 44118.75 47796.0 \n", "自費 44780.00 47792.0 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.groupby('是否自費').describe()" ] }, { "cell_type": "code", "execution_count": 16, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
醫院醫師系統編號病患姓名簽署日key-in日患者出生年月日流失/停藥日期是否自費用藥時間病患是否參加P1NP
患者狀況
10-成功問卷111111111111111111111181111110
11-成功問卷-次回拒訪11111110110
12-成功問卷-已停藥2102102102102102102102102102101
20-電話錯誤/無此人11111110110
24-拒訪88888880880
26-往生66666660660
2B-五次聯絡不到11111110110
2D-暫時停藥-觀察中33333331330
2E-暫時停藥-住院中11111110110
2G-連續三個月連絡不到66666660660
31-無人接聽11111110110
33-語音信箱/答錄機22222221220
\n", "
" ], "text/plain": [ " 醫院 醫師 系統編號 病患姓名 簽署日 key-in日 患者出生年月日 流失/停藥日期 是否自費 \\\n", "患者狀況 \n", "10-成功問卷 111 111 111 111 111 111 111 18 111 \n", "11-成功問卷-次回拒訪 1 1 1 1 1 1 1 0 1 \n", "12-成功問卷-已停藥 210 210 210 210 210 210 210 210 210 \n", "20-電話錯誤/無此人 1 1 1 1 1 1 1 0 1 \n", "24-拒訪 8 8 8 8 8 8 8 0 8 \n", "26-往生 6 6 6 6 6 6 6 0 6 \n", "2B-五次聯絡不到 1 1 1 1 1 1 1 0 1 \n", "2D-暫時停藥-觀察中 3 3 3 3 3 3 3 1 3 \n", "2E-暫時停藥-住院中 1 1 1 1 1 1 1 0 1 \n", "2G-連續三個月連絡不到 6 6 6 6 6 6 6 0 6 \n", "31-無人接聽 1 1 1 1 1 1 1 0 1 \n", "33-語音信箱/答錄機 2 2 2 2 2 2 2 1 2 \n", "\n", " 用藥時間 病患是否參加P1NP \n", "患者狀況 \n", "10-成功問卷 111 0 \n", "11-成功問卷-次回拒訪 1 0 \n", "12-成功問卷-已停藥 210 1 \n", "20-電話錯誤/無此人 1 0 \n", "24-拒訪 8 0 \n", "26-往生 6 0 \n", "2B-五次聯絡不到 1 0 \n", "2D-暫時停藥-觀察中 3 0 \n", "2E-暫時停藥-住院中 1 0 \n", "2G-連續三個月連絡不到 6 0 \n", "31-無人接聽 1 0 \n", "33-語音信箱/答錄機 2 0 " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.groupby('患者狀況').count()" ] }, { "cell_type": "code", "execution_count": 20, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
用藥時間系統編號
countmeanstdmin25%50%75%maxcountmeanstdmin25%50%75%max
是否自費
健保給付36.013.1121036.8406380.7500007.67857116.19642918.65178620.85714336.038853.5555563038.40964535494.037015.7537777.040363.2547017.0
自費174.07.1826775.4941010.6785712.7589295.6785719.70535723.714286174.040316.9540233181.14521635335.037448.5040391.542677.7546896.0
\n", "
" ], "text/plain": [ " 用藥時間 \\\n", " count mean std min 25% 50% 75% \n", "是否自費 \n", "健保給付 36.0 13.112103 6.840638 0.750000 7.678571 16.196429 18.651786 \n", "自費 174.0 7.182677 5.494101 0.678571 2.758929 5.678571 9.705357 \n", "\n", " 系統編號 \\\n", " max count mean std min 25% 50% \n", "是否自費 \n", "健保給付 20.857143 36.0 38853.555556 3038.409645 35494.0 37015.75 37777.0 \n", "自費 23.714286 174.0 40316.954023 3181.145216 35335.0 37448.50 40391.5 \n", "\n", " \n", " 75% max \n", "是否自費 \n", "健保給付 40363.25 47017.0 \n", "自費 42677.75 46896.0 " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2 = df.query('患者狀況 == \"12-成功問卷-已停藥\"')\n", "df2.groupby('是否自費').describe()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "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.6" } }, "nbformat": 4, "nbformat_minor": 2 }