投稿

Translate

#38 分析の準備

イメージ
さて、NDBデータから作成した分析用の「naihuku.csv」を用いて、いよいよデータを分析していきます。 今回は、基礎編の書籍化などで、しばらく間が空いてしまいましたので、準備運動代わりに分析の準備を下記の段取りにて行います。 1.分析用ノートブックの作成 2.データの読み込み ここでは、列名「薬効分類」、列名「都道府県番号」の小数点以下をカットします。分析上は問題ないのですが、すっきりしたデータに直します。 3.データ型の確認 4.「医薬品名」ごとの薬価を示す列の追加 ■ まずは、下記の 動画 (4分37秒)をご覧ください。 ■ リンク先等を見たり、自分のペースで見たい方は、 下記のスライドを参照してください。 #38 分析の準備 by @Cat_Taro

データサイエンス関連の資格 後編

イメージ
前偏に引き続いて、データサイエンス関連の資格について考えていきます。 IT系には、国家資格、民間資格を合わせると非常に多くの資格が存在しますが、下記の3方向から資格を分類してみました。 ① Pythonの資格 ② データサイエンスの資格 (1)ビジネス寄り (2)エンジニア寄り ③ プログラミング全般の資格 (1)国家資格 (2)民間資格 また、このチュートリアルの位置づけも考えてみましたので、今後のさらなるスキルアップの学習計画立案に参考にしてみてください。 ************ 参考資料 ************ ★参照リンク 1.データサイエンス チュートリアル/基礎編 https://datascience.official.ec/ 2.Python 3 エンジニア認定データ分析試験 https://www.pythonic-exam.com/exam/analyist 3.Python 3 エンジニア認定データ分析実践試験 https://www.pythonic-exam.com/archives/news/cpda-2 4.データサイエンティスト検定 リテラシーレhttps://www.datascientist.or.jp/dscertification/what/ 5.G検定 https://www.jdla.org/certificate/general/ 6.データサイエンス数学ストラテジスト(中級)/データサイエンス数学ストラテジスト(上級) https://www.su-gaku.net/math-ds/ 7.統計検定データサイエンス基礎 https://www.toukei-kentei.jp/exam/grade11/ 8.統計検定データサイエンス発展 https://www.toukei-kentei.jp/exam/grade12/ 9.統計検定データサイエンスエキスパート https://www.toukei-kentei.jp/exam/grade13/ 10.E資格 https://www.jdla.org/certificate/engineer/ 11.ITパスポート試験 https://www.ipa.go.jp/shiken/kubun/ip.html 12.情報セキュリティマネジメント試験 https://www...

データサイエンス関連の資格_前編

イメージ
こんにちは、猫のタローです。 今日は、データサイエンス関連の 資格 について考えていきましょう。 今まで、ブログや動画で続けてきた「データサイエンス チュートリアル/基礎編」は、知識がまったくなくても、見よう見まねで、基本的なプログラムを書いてみて、その楽しさがわかったら、本格的な学習に進むきっかけになればと始めたものです。 しかし、テキストを配布してしばらくたつと、このチュートリアルを体験してみて、本格的にデータサイエンスの学習に進もうと決意した方々が、 次は何を目指すべきか 、指針が必要だと感じました。 そこで、データサイエンス関連の資格にはどのようなものがあり、その中で、このチュートリアルの位置づけはどのようなものかを解説することにしました。 データサイエンティストになるためには、資格だけではなく、実践経験がとても重要ですが、 学習の指針 、 実務経験のチャンスを得る ためには、資格の取得が必須となることもあります。本格的にデータサイエンスの学習に進もうと決意した方々は、参考にしてください。 前編では、データサイエンティストの定義、スキル、「データサイエンス チュートリアル/基礎編」で身に付くことを改めて振り返ります。 ************ ■ まずは、下記の 動画 (4分18秒)をご覧ください。 リンクはこちら↓ データサイエンティスト協会が定義しているスキル  ■ スキルチェックリスト ver.5  ■ タスクリスト ver.4 データサイエンス チュートリアル/基礎編 ■ リンク先等を見たり、自分のペースで見たい方は、 下記のスライドを参照してください。 データサイエンス関連資格_前編 by @Cat_Taro

このブログが書籍になりました! 第2弾!

『1st Step ビッグデータの読み込みとデータの確認』で作成した「id_pos4」、いわゆる「きれいなデータ」を用いて、データの見える化、およびレポーティング用(報告書・会議用資料)の集計を行っていきます。 グラフは、「seaborn」等を用いて、インパクトのあるグラフを少ないコードで描いていきます。グラフによるデータの見える化で、より深い洞察が得られることと思います。 グラフにするためのデータの前処理やグラフの不具合についても、よくある間違い実例で解説しています。 →  購入はこちら

このブログが書籍になりました! 第1弾!

データサイエンスに興味を持ってはいるが、データサイエンスに本気でダイブしようかどうか迷っている方々、そのような方々に分析を体験してみる機会を提供するために、この ブログ「データサイエンス チュートリアル」、およびYoutube「 DataScience_for_everyone 」を始めました。 知識がまったくなくても、見よう見まねで、基本的なプログラムを書いてみて、その楽しさがわかったら、本格的な学習に進むきっかけになればと思ったのが始めた動機です。 うれしいことに、読者や視聴者の中には、初めから、基本的なプログラムをしっかり身に付けたいという要望を持つ方も現れました。 そこで、ブログと動画をまとめたテキストを出版することにしました。 第1弾は、『1st Step ビッグデータの読み込みとデータの確認』です。  → 購入はこちら ブログや動画を、スキマ時間や通勤時間にスマホで見聞きし、週末など1時間程度時間が取れる時に、このテキストを参考にして、実際にコラボを起動してプログラムを書いてみる。そんな使い方を想定しています。 慣れてきたら、このテキストにある参考資料を読んで、このテキストのプログラムをちょっと変えてみて、コラボで動くかどうか確認してみる事も、スキルを身に付けるためにとても有効です。自分なりのコラボ・ノートブックを作りましょう。 もちろん、初めからこのテキストに取り組んでも構いません。 どのような使い方であれ、このテキストが最初の一歩になり、あなたがデータサイエンスを身に付け、それがリスキリングにつながり、より充実した人生を送れるようになることを願ってやみません。

#37 Interactive Table

イメージ
まずは、前回、縦型(long型)に変換したデータをよく見てみましょう。列名「個数」末尾の方に、「-」(ハイフン)が存在します。 これは、データが存在しないことを表しますが、Pythonはその意味を理解しません。欠損値「NaN」と変換しておきましょう。#30「Section 28 ピボットテーブル(2)」に出てきた77を思い出してください。 ● データを縦型に変換する    77  データ名.replace(“元の要素”, “新しい要素”) また、「“新しい要素”」を 欠損値 に置換する場合は、「 np.nan 」と記載します。この場合、「” ”」は、要りません。 さて、コラボには、pandasデータフレームをインタラクティブなディスプレイに変換する拡張機能「 Interactive Table 」があります。このディスプレイは、フィルタリング、並べ替え、探索などを行うことができます。 データを保存する前に、「Interactive Table」を体験していきましょう。 最後はデータを保存します。 ● データを保存する    ㉘ データ名.to_csv(‘保存するフォルダーのパス/新データ名.csv’) ************ ■ まずは、下記の 動画 (5分5秒)をご覧ください。 ■ 次にプログラムの 解説 を自分のペースで読み、コラボでプログラムを書いてみましょう。 下記のスライドを参照してください。 #37 Interactive Table by @Cat_Taro ************ ■ このセクションのプログラムは下記のようになります。    実際に、コピペして コラボ で試してみましょう! df_all4.replace("-", np.nan, inplace=True) df_all4 df_all4.query('医薬品名 == ["タケキャブ錠20mg"]') df_all4.to_csv('/content/drive/MyDrive/Colab Notebooks/医療/naihuku.csv')

#36 縦型(long型)に変換

イメージ
前回結合したデータを「 melt 」使って、データを変数が一列にまとめられている縦型にしていきます。これにより、集計がしやすくなります。 Excelデータは人間が見やすいように横型(wide型)になっていることが多いのですが、 集計する際は、縦型(long型)にすることが必要 です。これは、変数が一列にまとめられているからです。 この縦変換には、「melt」を用います。 ● データを縦型に変換する     89 pandas.melt( データ名                                 , id_vars=固定される列名                                 , value_vars=meltする識別変数                                 , var_name=meltする識別変数の名前                                 , value_name=meltする識別変数の値の名前 ) ● 不要な列を削除する     90 データ名.drop(“列名”, axis=1) ************ ■ まずは、下記の 動画 (4分52秒)をご覧ください。 ■ 次にプログラムの 解説 を自分のペースで読み、コラボでプログラムを書いてみましょう。 下記のスライドを参照してください。 #36 縦型(long型)に変換 by @Cat_Taro ************ ★参考資料 ■ 【pandas】melt, pivot:縦横変換...

#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 ************ ■ このセクションのプログラムは下...

データホライゾンと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...

#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 <= 列名 <= 数...

#30 Section 28 ピボットテーブル(2)

イメージ
さて、「2nd STEP 集計とグラフ描画」は、最後の動画となります。 ここまで読んでいただき、ありがとうございました。 データサイエンティストが、どのようなプログラムを書いているのか、試行錯誤も含めて、伝わったかなぁと思います。プログラムを書くという作業の背景を理解して、ビジネスの現場で データ思考 を心がけていただくことを期待します。 また、このブログで、データサイエンスに興味を持ち、もっと高度なプログラムを書いてみたいと思った方もいることでしょう。ブログの参考図書を参考に、データサイエンスの大海原に漕ぎ出していきましょう。 本セクションでは、円グラフに現れている数値が本当に価格帯ごとの 比率 (%)になっているかどうかをピボットテーブル+αで確認していきます。 グラフで傾向をつかむだけでなく、その数値を把握することを求められるケースがしばしばありますので、ピボットテーブルで求めたクロス集計表にひと手間加えて、比率(%)がわかる表の作り方を身に付けましょう。「 pivot_table 」では、 欠損値を含めないで集計 しますので、欠損値を確認したり、データ型を変えたり、結構、手間がかかります。 また、一気に、比率を求めてしまう方法として、データフレームの各行に対して関数を適用する「 apply 」と1行で記載できる関数を定義する「 lambda 」を組み合わせることも身に付けていきましょう。 76 データ名[データ名.isna().any(axis=1)] 77  データ名.replace(“元の要素”, “新しい要素”) 78  データ名.apply(関数, axis=1) 79  lambda 引数:処理内容 まとめとして、データを「見える化」するための「 グラフ・集計表の目的別手法 」も掲載しました。復習の意味で、参考にしてください。 ■ まずは、概要を理解したい方は、下記の 動画 (15分31秒)をご覧ください。 ■ PowerPoint(パワポ) でじっくりと理解したい方は、下記のスライドを参照してください。 Section 28 ピボットテーブル(2) by @Cat_Taro