From d875338f763a05ca099f6043c31e4771c06f6b42 Mon Sep 17 00:00:00 2001 From: ryo-ma Date: Sun, 18 Feb 2024 16:07:56 +0900 Subject: [PATCH] fix(main.py): refactor delete_title function to remove unnecessary title specific to Daihuku Prefecture fix(main.py): refactor fix_format_page_df function to apply delete_headers and delete_title functions to the dataframe fix(main.py): refactor merged_df variable to df for clarity fix(main.py): refactor result_df variable to remove unnecessary columns with missing values and rows with less than 2 data points fix(main.py): refactor output file name to include prefecture number and name --- main.py | 25 +++++++++++++---- ..._\346\262\226\347\270\204\347\234\214.csv" | 27 +++++++++++++++++++ 2 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 "output_files/47_\346\262\226\347\270\204\347\234\214.csv" diff --git a/main.py b/main.py index fd61fda..11cfeaf 100644 --- a/main.py +++ b/main.py @@ -10,6 +10,17 @@ def delete_headers(df, line_number): return df +# 大分県に不要なタイトルがあるため削除 +def delete_title(df): + if df.iloc[0, 0] == "緊急避妊に係る診療が可能な産婦人科医療機関等一覧": + return df.drop(df.index[:1]) + return df + + +def fix_format_page_df(df, line_number): + return delete_headers(delete_title(df), line_number) + + if not os.path.exists("./output_files"): os.mkdir("./output_files") @@ -18,12 +29,16 @@ def delete_headers(df, line_number): opendata_file = os.listdir(f"./data_files/shinryoujo_{i}") dfs = tabula.read_pdf(f"./data_files/shinryoujo_{i}/{opendata_file[0]}", lattice=True, pages='all', pandas_options={'header': None}) # 1ページ目のみ「基本情報」行の削除のため1行指定 - first_df = delete_headers(dfs[0], 1) + first_df = fix_format_page_df(dfs[0], 1) # 2ページ目以降は「基本情報」およびヘッダーを削除するため2行指定 - dfs = [delete_headers(x, 2) for x in dfs[1:]] + dfs = [fix_format_page_df(x, 2) for x in dfs[1:]] dfs.insert(0, first_df) - merged_df = pd.concat(dfs).replace('\n', '', regex=True).replace('\r', '', regex=True).replace('\r\n', '', regex=True).replace('\n\r', '', regex=True) - # データが2つ未満の行は不要な可能性が高いので削除 - result_df = merged_df.dropna(thresh=2) + # ページごとのデータを結合 + df = pd.concat(dfs) + # 改行コードを削除 + df = df.replace('\n', '', regex=True).replace('\r', '', regex=True).replace('\r\n', '', regex=True).replace('\n\r', '', regex=True) + # データが2つ未満の行は不要な可能性が高いので行を削除 & 列名に欠損値がある場合も列ごと削除 + result_df = df.dropna(thresh=2).dropna(subset=[df.index[0]], axis=1) + prefecture_number = str(i).zfill(2) result_df.to_csv(f"./output_files/{prefecture_number}_{PREFECTURES[i-1]}.csv", header=False, index=False) diff --git "a/output_files/47_\346\262\226\347\270\204\347\234\214.csv" "b/output_files/47_\346\262\226\347\270\204\347\234\214.csv" new file mode 100644 index 0000000..76cc4c7 --- /dev/null +++ "b/output_files/47_\346\262\226\347\270\204\347\234\214.csv" @@ -0,0 +1,27 @@ +施設名,郵便番号,住所,電話番号,産科、婦人科又は産婦人科の標榜の有無,医療機関における緊急避妊にかかる対面診療への対応可能時間帯,常時の緊急避妊薬の在庫の有無 +愛知クリニック,901-2206,沖縄県宜野湾市愛知1-2-12,098-892-3511,有,月曜・水曜 9:00~18:00火曜・金曜 17:30~20:30木曜・土曜 9:00~12:15,有 +あいレディースクリニック,904-2153,沖縄県沖縄市美里4-17-7,098-937-1111,有,24時間対応可能,有 +(医)海秀会 うえむら病院,901-2424,沖縄県中城村南上原803-3,098-895-3535,有,月・火・水・金・土9:00~13:00、 15:00~18:00,有 +中部産婦人科医院,904-0012,沖縄県沖縄市安慶田1-3-20,098-937-8878,有,平日 9:00~17:00土曜 9:00~12:00,有 +当山産婦人科医院,901-2225,沖縄県宜野湾市大謝名5-20-8,098-897-5666,有,9:00~18:00,有 +医療法人なしろ 名城病院,904-2245,沖縄県うるま市赤道175-3,098-974-2121,有,午前 8:30~11:00 妊婦検診のみ 4:30まで午後 13:00~16:00 (水曜・日曜・祝日を除く),有 +古堅ウィメンズクリニック,901-2225,沖縄県宜野湾市大謝名165,098-890-1600,有,平日 9:00~18:00 木曜休診土曜 9:00~17:00,有 +美里女性クリニック,904-2155,沖縄県沖縄市美原2-25-3,098-929-3003,有,平日 9:00~17:00土曜 9:00~12:00,有 +医療法人彩の会 やびく産婦人科・小児,904-0111,沖縄県北谷町字砂辺306,098-936-6789,有,24時間対応可能,有 +ゆいクリニック,904-2142,沖縄県沖縄市登川2444-3,098-989-3801,有,24時間,有 +赤嶺レディースクリニック,901-2133,沖縄県浦添市城間4-18-2,098-877-8839,有,月・火・木・金 09:00~13:00 14:00~18:00水・土 09:00~12:00,有 +バークレー レディースクリニック,901-2104,沖縄県浦添市当山2-2-11 5階,098-873-1135,有,月・水・木・土 8:30~11:30 13:30~17:00火 13:30~17:00病院からのメモ書き: 強制性交等の事案に関しては高次機関での診療としています。,有 +石川産婦人科(医院),900-0021,沖縄県那覇市泉崎2-20-2,098-832-3351,有,平日 9:00~17:00(火・木休診)土曜 9:00~16:00(日曜・祝祭日休診),有 +糸数病院,900-0012,沖縄県那覇市泊1-28-1,098-863-4103,有,平日 9:00~18:00 (受付 17:30まで)土曜 9:00~12:00 (受付 11:30まで),有 +伊波レディースクリニック,903-0806,沖縄県那覇市首里汀良町1-8-2,098-885-5435,有,月・火・木・金・土 9:00~17:00,有 +医療法人 祐の会 友利産婦人科,900-0024,沖縄県那覇市古波蔵2-25-24,098-855-1103,有,平日 9:00~17:00土曜 9:00~12:00※その他の時間帯や休日・祝祭日は問合せ後、対応を検討します。,有 +沖縄協同病院,900-8558,沖縄県那覇市古波蔵4-10-55,098-853-1200,有,平日 9:00~17:00土曜 9:00~11:00,有 +新田クリニック,900-0016,沖縄県那覇市前島1-14-3,098-863-0073,有,平日9:30~18:00 水・土 9:30~13:,0有 +Joy レディースクリニックくもじ,900-0015,沖縄県那覇市久茂地1-8-16,098-943-2500,有,月曜から木曜 10:00~19:30土曜 10:00~13:30,有 +奥平産婦人科医院,906-0013,沖縄県宮古島市平良下里1259-1,0980-72-3026,有,平日 8:30~17:30木曜・土曜 8:30~12:30,有 +まつをレディースクリニック,907-0002,沖縄県石垣市真栄里233-3,0980-83-4822,有,月・火・水・金 8:45~11:30、14:45~17:30土 8:45~11:30,有 +那覇市立病院,902-8511,沖縄県那覇市古島2-31-1,098-884-5111,有,外来 平日 8:30~16:00急病センター 平日 18:00~翌日 8:00,有 +琉球大学医学部付属病院,903-0125,沖縄県西原町字上原207,098-895-3331,有,終日,有 +県立中部病院,904-2293,沖縄県うるま市宮里281,098-973-4111,有,24時間 365日,有 +公立久米島病院,901-3121,沖縄県久米島町字嘉手苅572-3,098-985-5555,無,24時間,有 +沖縄県立北部病院,905-8512,沖縄県名護市大中二丁目12番3号,0980-52-2719,有,24時間 365日,有