概要
-
医薬品副作用データベースから取得したCSVファイルを使いpandasを用いたCSVの操作、その結果のユニットテスト用に作成
- 医薬品、有害事象単位で症例をユニークにしたレコードを作成する。
- 医薬品ごとに有害事象の件数を計算できるようにしたレコードを作成する。
- 作成した結果をユニットテストで確認できるようテストクラスも配置
- ソースはgithubにて公開
使い方
- データをこちらから取得
- ファイルサイズが大きいためgithubには加工したファイルをコミットしている
-
data/drug.csv
に医薬品の情報(drugXXXXXX.csvをリネームする)を格納する。 -
data/reac.csv
に有害事象の情報(reacXXXXXX.csvをリネームする)を格納する。 - 実行すると
output
下に出力される。-
caseCount.csv
は医薬品、有害事象の組み合わせで症例単位でまとめたもの例数計上用に重複を削除している。 -
count.csv
は医薬品、有害事象の組み合わせで症例単位でまとめたもの件数を数えるために重複もそのままにしてある。
-
ユニットテスト
- テスト用のデータは
test
下の同じ構成に配置している。 - 現在の状態でテスト結果は一致するようにしている変更があった時には結果ファイルを必要に応じて修正を行う
ソース説明
-
CreateFileBase
を継承したクラス内で処理を行うことで単体テストの結果比較を容易にしている。 - 各ファイルは
識別番号
.報告回数
で結合できるようになっているのでまずは結合を行い必要な項目のみ出力している。 -
FileTestBase
はunittest.TestCase
を継承しているのでこのクラスで比較処理は行うようにして呼び出し元はあくまでテスト対象の実行、結果の受け渡しのみを行う - 今回はエクセルの対象は作っていないがcsvと同じ要領でエクセルの比較もできる
- pandasを使ってエクセルファイルを加工するツールを作った際のテストなどに流用もできるはず・・・
応用
- 結果ディレクトリをテストケースごとに変えることでテストのパターンを網羅するできる
- 今後必要に応じて基底クラス部分は修正予定