投稿

#35 データの結合

イメージ
前回取り込んだ24個のExcelファイルを、年度ごとの推移を分析するために「 concat 」を使って、結合していきます。 その過程で、 ワイルドカード 、 forループ 、 リスト内包表記 という便利な機能も使っていきますので、しっかりと身に付けていきましょう。 ● 特定のファイルのパス名とファイル名を取得する     85. glob.glob(‘ファイルのパス/ファイル名.ファイル形式’) ● データを単純に結合する     86. pd.concat([データ名1, データ名2, …],  ignore_index=True) ● 繰返し処理する      87. for イテレーター in イテラブルオブジェクト:                   処理1                   処理2                   ・・・ ● 末尾(最後)に要素を追加する      88. リスト名.append(引数)  ● リスト内包表記     pd.concat((pd.read_csv(i) for i in all_files), ignore_index=True) ************ ■ まずは、下記の 動画 (8分24秒)をご覧ください。 ■ 次にプログラムの 解説 を自分のペースで読みましょう。 下記のスライドを参照してください。 #35 データの結合 by @Cat_Taro ************ ★参考資料 ■ concatのイメージ by shunさんの「データサイエンスの道標」 https://datasciencemore.com/python-pandas-concat/ ■ [解決!Python]内包表記でリストを作成するには https://atmarkit.itmedia.co.jp/ait/articles/2106/29/news021.html ************ ■ このセクションのプログラムは下記のようになります。    実際に、コピペして コラボ で試してみましょう! import glob all_files = glob.glob('/content/drive/MyDrive/Colab Notebooks/医療/データ/*.csv') all_

データホライゾンとDeSCヘルスケア 医療データ目的外利用の疑い

DIAMOND online が、DeNAの医療データへの疑惑に関して、特集を組んでいます。 対象となった企業DeNAの連結子会社には、データホライゾンとDeSCヘルスケア(ディーエスシーヘルスケア)があり、 医療データの流れをまとめると、下記のようになっています。 自治体 → データホライゾン → DeSC → 保険会社、 製薬企業 DIAMOND onlineの特集記事を時系列で並べると、2023年12月に疑惑が浮上して、自治体の調査結果が明らかになった2月下旬にその結果と弁護士の意見を掲載しています。ちなみに、DeNAは 2023年12月の疑惑の記事を即座に否定しています。 ●2023年 12月18日 【スクープ】DeNAが医療データ「目的外利用」の疑惑浮上!提供自治体が調査へ ● 2024年2⽉28⽇ 【スクープ】DeNAが医療データの「第三者への有償提供」を提供⾃治体に認める︕⽬的外利⽤で個⼈情報保護法違反か ● 2024年2⽉29⽇ 【内部資料⼊⼿】DeNAが「⾃治体の医療データ」を⽣保にモーレツ営業︕営業資料に透ける不正の動機とは︖ ● 2024年3⽉1⽇ DeNAの医療データ有償提供は「個⼈情報保護法違反」か︖専⾨家が指摘する違法性とは 2024年 2⽉28⽇ の記事では、 DIAMOND onlineが自治体に取材し、自治体とデータホライゾンの委受託契約を入手したとのこと。 それによると、自治体とDeNAグループの最大の祖語、争点は、 自治体が データホライゾンに委託している業務は、「 住民の医療費負担の適正化等広く住民の福祉の向上に資する業務 」となっており、その 解釈の違い です。 ★ 自治体 →保険会社や製薬企業への有償提供について事前の説明が無かった。これらの有償提供は 契約範囲を逸脱 している。 ★ DeNAグループ → 「 住民の医療費負担の適正化等広く住民の福祉の向上に資する業務 」は、 保険会社や製薬企業への有償提供を含んでいる 。 自治体が保有している医療データは、 医療機関が 国民健康保険 の 保険者に提出する月ごとの診療報酬明細書( レセプト )のことで、 保険者は市町村と都道府県になっています ( 平成30年4月以降 )。この 国民健康保険 は、 職場の健康保険(健康保険組合や共済組合など)に加入している人や生活保護を受けて

#34 データの修正・保存

イメージ
今回は、NDBオープンデータのホームページにあるデータを一気に保存します。その前にデータ型の変更や、結合した時にどのファイルだったかをわかるように、フラグを立てておきます。 そのために、下記のようなプログラムを解説していきます。 ● 要素がすべて同じ文字からなる列を追加する    84 データ名[[“列名1”, “列名2”, …]] = [“文字1”, “文字2”, …] ● データ型を変更する(復習)    ⑱ データ名.astype({“列名1”:データ型, “列名2”:データ型,…}) ************ ■ まずは、下記の 動画 (4分29秒)をご覧ください。 ■ 次にプログラムの 解説 を自分のペースで読みましょう。 下記のスライドを参照してください。 #34 データの修正・保存 by @Cat_Taro ************ ■ このセクションのプログラムは下記のようになります。    実際に、コピペして コラボ で試してみましょう! df1_1.dtypes df1_2 = df1_1.astype({"薬効分類":"str","医薬品コード":"str", "後発品区分":"str"}) df1_2.head() df1_3 = df1_2.copy() df1_3[["年度", "剤型_場所"]] = ["H26", "内服外来院内"] df1_3 df1_3.to_csv('/content/drive/MyDrive/Colab Notebooks/医療/データ/H26_内服外来院内.csv') # H26 url2 = "https://www.mhlw.go.jp/file/06-Seisakujouhou-12400000-Hokenkyoku/0000139844.xlsx" df2 = pd.read_excel(url2, skiprows=[0, 1, 3], dtype = {"薬効\n分類":"object&quo

#33 URLからデータを読み込む

イメージ
今回は、NDBオープンデータのホームページにあるデータを読込み、見やすい形に整形していきます。 そのために、下記のようなプログラムを解説します。 ● ホームページからダウンロードできるExcelファイルを読み込む   80   url = “Excelファイルのありか"     データ名 = pd.read_excel(url) ● Excelの最初の何行かを読み飛ばす「skiprows」、「skipfooter」   81  skiprows=[数字1, 数字2, 数字3, …] ● データの列名を変更する「rename」   82  データ名.rename(index={古い行名1:新しい行名1,…},         columns={古い列名2:新しい列名2,…}) ● 文字列を上下と同じように埋める「fillna」   83  データ名 ["薬効分類"].fillna(method='ffill') ************ ■ まずは、下記の 動画 (8分42秒)をご覧ください。 ■ 次にプログラムの 解説 を自分のペースで読みましょう。 下記のスライドを参照してください。 #33 データの読み込み by @Cat_Taro ************ ■ このセクションのプログラムは下記のようになります。    実際に、コピペして コラボ で試してみましょう! import pandas as pd import numpy as np url1 = "https://www.mhlw.go.jp/file/06-Seisakujouhou-12400000-Hokenkyoku/0000139842.xlsx" df = pd.read_excel(url1) df.head() url1 = "https://www.mhlw.go.jp/file/06-Seisakujouhou-12400000-Hokenkyoku/0000139842.xlsx" df1 = pd.read_excel(url1, skiprows=[0, 1, 3]) df1.head() df1_1 = df1.rename(columns={"薬効

#32 NDBオープンデータとは

イメージ
初めに「 NDBオープンデータ 」とは何かを説明します。 今回分析の対象とする「薬剤」の「都道府県別薬効分類別数量」のURL一覧もGoogleIDを持っていて、共有許可をしていただければ、ダウンロードできますのでご活用ください。 ■  まずは、 PowerPoint(パワポ) の資料をお読みください! #32 NDBオープンデータとは by @Cat_Taro ■ 次に、 下記の 動画 (5分3秒)で復習しましょう。   ★参考資料 ■ 利用を検討している方々へのマニュアル https://www.mhlw.go.jp/content/12400000/001162218.pdf ■ NDBオープンデータ分析サイト https://www.mhlw.go.jp/ndb/opendatasite/index.html ■ NDBオープンデータ https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/0000177182.html ■ 【分析で使う資料】 「薬剤」→「都道府県別薬効分類別数量」→「内服」のURL https://docs.google.com/spreadsheets/d/12LcE067zroTxUihek7xO2qjrylyRQNVe/edit?usp=drive_link&ouid=106292536926943509337&rtpof=true&sd=true

#31 3rd STEP開始します!

イメージ
はじめまして! タローの弟子の 小次郎 です。 これから、タローに代わり、ガイド役をいたします。 データサイエンス チュートリアルの基礎編(1st STEP、2nd STEP)は、いかがでしたか? この3rd STEP「 応用編 医療 」では、いままで身に付けたスキルを基にNDBオープンデータを使いやすく加工して、分析していきましょう。 なぜ、医療データを選んだかって? それは、医療分野は使える データが豊富 にあるからです。また、 体系化されているマスター も完備されでいます。特殊なものと思われていますが、 医学的知識は最小限で十分 です。 医療分野での 活躍の機会も数多く ありますから、みなさんも、チャレンジしてみてください。 オープンデータは 練習用の素材 になるだけでなく、分析することによって 社会貢献 にも役立ちます。

集計・データの見える化のプログラムリスト

イメージ
「データサイエンス チュートリアル」の動画付きチュートリアルの2nd STEPを終え、集計、データの見える化までは、なんとなくやり方がわかるようになってきたと思います。 今まで、出てきたプログラムをリストアップしました。 一通り、動画付きチュートリアルを終えた方は、索引代わりにお使いください。 ********** ■ 1st  STEP  #4 Section 2 ライブラリの選択とデータの読み込み ① import ライブラリ名 as ライブラリの略称 ② pd.read_excel('データのある場所/データ名.xlsx ') #5 Section 3 読み込んだデータの確認(1) ③ データ名 ④ データ名.head() ⑤ データ名.tail() #6 Section 4 読み込んだデータの確認(2) ⑥ len(データ名.index) ⑦ データ名[“列名""] ⑧ データ名[“列名""].unique() #7 Section 5 データ型 ⑨ データ名.dtypes ⑩ pd.read_excel(""データのある場所"", dtype = {“列名"": データ型}) #8 Section 6 列の参照 ⑪ データ名[“列名”] ⑫ データ名[[“列名”]] ⑬ データ名[データ名[“列名”] > 数字] #9 Section 7 数値の最大値の求め方 ⑭ データ名[“列名""].max(axis=0) ⑮ データ名.describe() ⑯ print(“列名"") ⑰ データ名.sort_values(“列名"",ascending=False) #10 Section 8 データ型の変更(キャスト) ⑱ データ名.astype({“列名”:データ型}) #11 Section 9 欠損値の見つけ方・削除方法 ⑲ データ名.iloc[行番号 :  ] ⑳ データ名.isna().sum() ㉑ データ名.dropna() #12 Section 10 queryを使った複数条件での抽出 ㉒ データ名.query(“数字1 <= 列名 <= 数