万事屋ゆきさん

薬剤師をやっています。薬剤師の業務では、いろいろな計算を行います。ただ…それが少し面倒…

万事屋ゆきさん

薬剤師をやっています。薬剤師の業務では、いろいろな計算を行います。ただ…それが少し面倒で、ラクしたい!ってことでプログラミングを始めました。備忘録としてまとめています。コードは洗練されていないですが、そこは大目に見てください。

最近の記事

便利ライブラリ matplotlib① 基本的な使い方

以前の投稿でAltairというグラフ化のためのライブラリをご紹介しました。他にもグラフ化を行うライブラリはいくつかあり、代表的なmatplotlibについてまとめていきたいと思います。 準備ローカル環境で行う場合は、作業ディレクトリを作成し、他のライブラリ同様にpipでインストールすることが出来ます(ターミナルで「pip install matplotlib」)。今回は挙動を確認しながら進めていきたいので、pyファイルではなくノートブック形式(Google colabのよう

    • VScodeの使い方(プログラムを書くための基本もついでに!)

      前回、ローカル環境での開発環境の構築について書きました。その中で、VScodeというエディタを紹介したので簡単に使い方を説明します。Python用の拡張機能はインストールしているものとして進めます。 プログラムを書く際のキホンこれまでは説明を省略してきたことがあるので、ついでに書いていきます。 ディレクトリ これまではGoogle Colabでプログラミングをしてきたので、あまり意識はせずに来ましたが、プログラムを書く際に最初に作業ディレクトリを準備します。ディレクトリ

      • Pythonの開発環境を構築しよう!

        これまで、とりあえずPythonを始めてみよう!ということで環境構築が不要なGoogle Colabを使用してコードを書いてきました。少し勉強してみようかなぁと思って頂けたでしょうか?もしそう思うなら、自身のパソコン(ローカル環境)にPythonの開発環境を構築することをお勧めします。 Google Colabとローカル環境の違いファイル形式 Google Colabは、これまで書いてきたようにセルにコードを書いて実行していきます。1行ずつや段落ごと実行することができるの

        • 非線形薬物の血中濃度解析③ 可視化

          非線形薬物の血中濃度解析を行うためのプログラム作成の続きです。作成の流れは、 データ入力 Lineweaver-Burkプロット(直線回帰) 任意の投与量から血中濃度を計算 可視化(グラフ化) という順番で行っています。前回の投稿で1~2は作成済で、以下のコードが出来ました。 import numpy as npnum = int(input('採血ポイント数:'))y = []x = []dose_list = []conc_list = []for i in

        便利ライブラリ matplotlib① 基本的な使い方

          非線形薬物の血中濃度解析② numpyを使用した回帰

          今回から非線形薬物の血中濃度解析に使用できるプログラムのコードを実際に書いていきましょう! 設計図:解析の流れ前回の投稿で非線形薬物について復習しました。不安な方は前回の投稿を見返しながら読み進めてください。 解析を行うためには、KmとVmaxの定数を知る必要がありそうです。この2つの定数は、投与量が異なる2点の採血データをLineweaver-Burkプロットを用いて直線回帰することで算出できました。従って、採血データを入力し、データの直線回帰からy切片と傾きを求めKm

          非線形薬物の血中濃度解析② numpyを使用した回帰

          非線形薬物の血中濃度解析① Michaelis–Menten式を克服

          これまでPythonの基礎として、基本的な書き方やよく使うライブラリに関して紹介してきました。ここからは、少し趣向を変えて実務での使用を想定したプログラム作成を目指していきたいと思います。 はじめに薬剤師の業務のひとつにTDM(Therapeutic Drug Monitoring)というものがあります。TDMは、投与された薬の血中濃度を解析し効果的かつ安全な投与設計を行う業務です。特に、治療域が狭い薬物や薬物動態の個人差が大きい薬が対象となります。 医師に診断スキルを期待

          非線形薬物の血中濃度解析① Michaelis–Menten式を克服

          便利ライブラリ Altair② ステップで解説!実践編

          自分のデータを可視化してみよう!前回、Altairについて紹介しました。公式ドキュメントにあるサンプルコードを参照し、基本的な書き方を確認しました。今回はPandasの回でも使用していたデータを例に用いて可視化を行ってみたいと思います。 ⓪データの準備 データは厚労省が公開している人口10万人当たりの新型コロナウイルス新規陽性者数のデータを使用します。以下のリンクからCSVファイルをダウンロードし、Googleドライブ上に保存してください。 Altairで読み込むため

          便利ライブラリ Altair② ステップで解説!実践編

          便利ライブラリ Altair① 基本編

          Altairとは?これまではPandasを使ってDataFrameの加工の仕方をまとめてきました。ここからは、それらのデータを活用して可視化するためのライブラリをご紹介します。 可視化用のライブラリには、matplotlibやseabornなどがありますが、まずは個人的にお薦めなAltairをご紹介します。 installAltairをインストールしてimportしてみましょう。 !pip install altair ライブラリはバージョンが更新されると、コードの書

          便利ライブラリ Altair① 基本編

          便利ライブラリ Pandas④ pivotとmelt

          サンプルデータの準備Pandasについての第4回目です。 今回は、データの可視化を見据えたデータ整形についてまとめています。以下のコードから、オオムギ生産量のデータをサンプルとして取得して使用します。 import pandas as pdfrom vega_datasets import datasource = data.barley() sourceという変数にデータフレームが格納されています。中身を表示すると、120行 x 4列のデータフレームになっていることが

          便利ライブラリ Pandas④ pivotとmelt

          便利ライブラリ Pandas③ mergeとconcat

          Pandasについての第3回目です。 Pythonの基本⑤ ライブラリで扱ったcsvファイルを使用してデータ処理を行っていきます。csvをダウンロードし、ご自身のGoogleドライブ上に保存してから進んでください。 以下のコードで全体のデータを格納したdfと東北のデータを抜粋し列名を変更し、さらに2021年8月1日~2021年8月7日分を抽出したdf_tohokuを準備して先に進んでください。 import pandas as pdfrom google.colab imp

          便利ライブラリ Pandas③ mergeとconcat

          便利ライブラリ Pandas② 日付データの処理とiloc

          Pandasについての第2回目です。 Pythonの基本⑤ ライブラリで扱ったcsvファイルを使用してデータ処理を行っていきます。csvをダウンロードし、ご自身のGoogleドライブ上に保存してから進んでください。 以下のコードで、csvファイルをPandasを用いて読み込んでデータフレームを作成します(説明の都合上、インデックスの設定はしていません)。Pandas①で扱ったコードなので、前回の投稿をご覧になってない方はそちらもご参照ください。 import pandas

          便利ライブラリ Pandas② 日付データの処理とiloc

          便利ライブラリ Pandas① 基本操作とデータ抽出

          Pandasについて公式ドキュメント データの読み込みライブラリの回の後半で、Pandasを用いてcsvファイルを読み込みました。今回も同じデータを使用し、Pandasの基本操作を紹介します。前回のようにcsvファイルをuploadして使用する方法でも良いですし、Googleドライブ上にcsvファイルを保存し、そのファイルを読み込んで使用することも出来ます。 from google.colab import drivedrive.mount('/content/driv

          便利ライブラリ Pandas① 基本操作とデータ抽出

          Pythonの基本⑤ ライブラリ

          ライブラリとは?Pythonファイル(.py)は、他のPythonプログラムからimportして使用することが出来ます。このPythonファイルはモジュールと呼ばれ、モジュールを集めたものをパッケージ、さらにパッケージをまとめたものをライブラリと呼びます。 ライブラリには、Excelのようにデータをテーブル(表)として扱うことが出来るpandas、データを可視化(グラフ化)することができるmatplotlibやaltair、webスクレイピングで使用するBeautifulS

          Pythonの基本⑤ ライブラリ

          Pythonの基本④ 関数

          関数とは?関数とは、一定の処理を再利用できる形にまとめておいたものです。漠然とし過ぎて分かりにくいので、腎機能計算をする時を例に考えてみましょう。 腎機能計算では、Cockcroft-Gault式やeGFRをよく使用します。 毎回上記のような計算式を打ち込んでも良いですが、さすがに面倒です。計算するたびに変化するのは、年齢や体重、血清クレアチニン値などのパラメータ(引数 ←"ひきすう"と読みます)で、それらを掛けたり割ったりする処理自体は同じです。 この定型処理に引数を渡

          Pythonの基本④ 関数

          Pythonの基本③ 条件分岐(if文)

          if文の基本プログラミングでよく使用する条件分岐の書き方についてまとめました。 ifの後に条件式を記述し、それが真(true)だった場合に実行される処理を続けて記述します。最初の条件が偽(false)だった場合、elifでさらに条件を設定しその条件がtrueだった場合の処理を記述したり、elseで条件がfalseだった場合の処理を記述することが出来ます。 最初の条件がfalseの場合、特に何も実行しなければelifやelseは省略できます。 条件式の書き方等号・不等号

          Pythonの基本③ 条件分岐(if文)

          Pythonの基本② ループ処理(for文)

          for文の基本Pythonのループ処理についてまとめています。個人的には、リストからデータを一つ一つ順番に取り出して処理していくループ処理と、インデックス番号を利用して指定した範囲でループ処理を行うループ処理をよく使用します。 pythonはfor文に限らず、構文はインデントの上げ下げで区別されます。繰り返したい処理が2行以上となる場合もインデントを揃えるひつようがあります。繰り返し処理終了後のコードは、インデントを戻して記述します。他言語だとEnd~と記述が必要だったり

          Pythonの基本② ループ処理(for文)