# Install/upgrade polars if needed (uncomment the line below)
#pip install --upgrade polars
Introduction
As mentioned in my last project, I’ve tried using Evcxr, which provided a way to use Rust interactively in a Jupyter environment. The name, “Evcxr”, was quite hard to remember at first. It was pronounced as “e-vic-ser” according to the author, which I’ve randomly come across in an online tech interview when I was looking into it. I’ve also sort of worked out a way to memorise its spelling by taking specific letters out of “evaluation context for rust” (which was what it was called in its GitHub repository).
For users of Jupyter Notebook/Lab and Python, they might be quite used to the working speed of the cell outputs. However, one thing I’ve noticed when I was using Evcxr or Rust kernel in Jupyter Lab was that the speed of cell outputs was noticeably slower (especially at the beginning while loading all the dependencies required). The speed improved when loading external crates and modules, and generally it was faster afterward.
Due to this reason (note: I did not look into any other optimising strategies for this and this could be restricted to my computer hardware specs, so this might differ for other users), I think Evcxr was not ideal for a very large and complex data science project yet (however if its ecosystem kept developing, it might be improved in the future). One thing of note was that when I was combing through issues in Evcxr’s GitHub repository, someone mentioned the slow compile time of the Rust compiler, which would have likely caused the snail speed, but knowing that the actual program running speed was blazingly fast, some sacrifice at the beginning made sense to me. Overall, Rust was really a systems programming language with memory efficiency (with no garbage collector), type safety and concurrency as some of its notable advantages.
Because of the dependency loading issue in the Jupyter environment, and also knowing there was already a dataframe library built from Rust, I’ve opted to use Polars-Python again for the data wrangling part of this project. This was also accompanied by the good old Pandas library as well (under the section of “Transform web-scraped data into dataframe” if anyone wants to jump to that part to see the code). I then went on to trial using Rust via Evcxr for data visualisation based on a small dataframe by using Plotly.rs. This project would be separated into 3 parts:
- Part 1: Initial pillbox dataset loading and web-scraping
- Part 2: Data wrangling and mining for data visualisations
- Part 3: Using Rust for data visualisation
The main reason I wanted to try Evcxr was that I could see the potential of using Rust interactively to showcase the results in a relatively fast and efficient manner. This meant specific data exploratory results could reach wider audience, leading to more impacts in different fields, in a very broad term. Oppositely, for more specific users such as scientists or engineers, this meant experiments could be carried out in a safe and efficient manner, with test results readily available for future work planning.
Download dataset
This time the dataset was spotted from Data Is Plural, specifically the 2022.11.30 edition. The section I was interested in was the first paragraph at the top, about “Pills”. By going into one of the links provided in the paragraph, this brought me to the Pillbox dataset from the US National Library of Medicine (NLM). The .csv file was downloaded via the “Export” button at the top right of the webpage.
This pillbox dataset was actually retired since 28th January 2021, but was still available for educational or research purposes only. Therefore, it was not recommended for pill identifications as the dataset was not up-to-date. Alternative resources such as DailyMed would be more appropriate for readers in the US (as one of the examples). For readers in other countries, local health professionals and resources would be recommended for up-to-date information.
Importing library & dataset
import polars as pl
# Check version of polars (uncomment line below)
#pl.show_versions()
= pl.read_csv("pillbox.csv", ignore_errors = True)
df df
ID | Enabled? | created at | updated at | spp | setid | splsize | pillbox_size | splshape | splshape_text | pillbox_shape_text | splscore | pillbox_score | splimprint | pillbox_imprint | splcolor | splcolor_text | pillbox_color_text | spl_strength | spl_ingredients | spl_inactive_ing | source | rxtty | rxstring | rxcui | RxNorm Update time | product_code | part_num | part_medicine_name | ndc9 | ndc_labeler_code | ndc_product_code | medicine_name | marketing_act_code | effective_time | file_name | equal_product_code | dosage_form | document_type | dea_schedule_code | dea_schedule_name | author_type | author | approval_code | image_source | splimage | has_image | epc_match | version_number | laberer_code | application_number | updated | stale | new | Pillbox Value |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
i64 | bool | str | str | str | str | i64 | str | str | str | str | i64 | i64 | str | str | str | str | str | str | str | str | str | str | str | i64 | str | str | i64 | str | i64 | i64 | i64 | str | str | i64 | str | str | str | str | str | str | str | str | str | str | str | bool | i64 | i64 | str | str | bool | bool | bool | bool |
41846 | true | "10/17/2017 05:... | "10/02/2020 05:... | "471fa2f1-73a0-... | "471fa2f1-73a0-... | 16 | null | "C48336" | "CAPSULE" | null | 1 | null | "5892;V" | null | "C48328" | "PINK" | null | "TEMAZEPAM 15 m... | "TEMAZEPAM[TEMA... | "SILICON DIOXID... | "HRX" | null | null | null | "10/02/2020 04:... | "0603-5892" | 0 | null | 6035892 | 603 | 5892 | "Temazepam" | "completed" | 20160406 | "d912ca54-6569-... | null | "C25158" | null | "C48677" | "CIV" | "LABELER" | "Qualitest Phar... | "C73584" | null | null | false | null | 5 | null | null | true | false | false | false |
8100 | true | "10/17/2017 05:... | "10/02/2020 04:... | "116e13c1-ac50-... | "116e13c1-ac50-... | 10 | null | "C48348" | "ROUND" | null | 1 | null | "I2" | null | "C48331" | "ORANGE" | null | "IBUPROFEN 200 ... | "IBUPROFEN[IBUP... | "SILICON DIOXID... | "HOTC" | "SCD" | "ibuprofen 200 ... | 310965 | "10/02/2020 03:... | "59779-074" | 0 | null | 597790074 | 59779 | 74 | "ibuprofen" | "active" | 20191120 | "55de9f94-89b2-... | null | "C42931" | "34390-5" | null | null | "LABELER" | "CVS Pharmacy" | "C73584" | null | null | false | null | 4 | null | null | true | false | false | false |
5258 | true | "10/17/2017 05:... | "10/17/2017 05:... | "827ce261-307b-... | "827ce261-307b-... | 7 | null | "C48346" | "PENTAGON (5 SI... | null | 1 | 2 | "par;129" | null | "C48329" | "GREEN" | null | "DEXAMETHASONE ... | "DEXAMETHASONE[... | "ANHYDROUS LACT... | "HRX" | null | "Dexamethasone ... | 197583 | null | "49884-129" | 0 | null | 498840129 | 49884 | 129 | "Dexamethasone" | "active" | 20120516 | "85a9eebb-be74-... | null | "C42998" | "34391-3" | null | null | "LABELER" | "Par Pharmaceut... | "C73584" | "NLM" | "498840129" | true | null | 4 | null | null | false | true | false | true |
21271 | true | "10/17/2017 05:... | "10/02/2020 05:... | "f7f1c99e-1a67-... | "f7f1c99e-1a67-... | 11 | null | "C48348" | "ROUND" | null | 2 | null | "LL" | null | "C48325" | "WHITE" | null | "Nickel Sulfate... | "Nickel Sulfate... | null | "HOMEO" | null | null | null | "10/02/2020 04:... | "61480-137" | 0 | null | 614800137 | 61480 | 137 | "Acunol" | "active" | 20190909 | "029eaf64-e66f-... | null | "C42998" | "34391-3" | null | null | "LABELER" | "PLYMOUTH HEALT... | "C73614" | null | null | false | null | 8 | null | null | true | false | false | false |
77050 | true | "09/20/2019 09:... | "10/02/2020 05:... | "ecb28fcb-f0d1-... | "ecb28fcb-f0d1-... | 6 | null | "C48348" | "ROUND" | null | 1 | null | "L;524" | null | "C48325" | "WHITE" | null | "CLONAZEPAM 0.2... | "CLONAZEPAM[CLO... | "SORBITOL;ASPAR... | "HRX" | "SCD" | "clonazepam 0.2... | 349195 | "10/02/2020 04:... | "62332-365" | 0 | null | 623320365 | 62332 | 365 | "CLONAZEPAM" | "active" | 20190701 | "ba5120ce-ed74-... | null | "C42999" | null | "C48677" | "CIV" | "LABELER" | "Alembic Pharma... | "C73584" | null | null | false | null | 3 | null | null | true | false | false | false |
76916 | true | "09/20/2019 09:... | "10/02/2020 05:... | "442e41da-24c2-... | "442e41da-24c2-... | 9 | null | "C48348" | "ROUND" | null | 1 | null | "LU;V06" | null | "C48325" | "WHITE" | null | "SILDENAFIL CIT... | "SILDENAFIL CIT... | "ANHYDROUS DIBA... | "HRX" | "SCD" | "sildenafil 50 ... | 312950 | "10/02/2020 04:... | "70748-132" | 0 | null | 707480132 | 70748 | 132 | "SILDENAFIL" | "active" | 20191001 | "17c537d9-b2e6-... | null | "C42931" | null | null | null | "LABELER" | "Lupin Pharmace... | "C73584" | null | null | false | null | 4 | null | null | true | false | false | false |
20016 | true | "10/17/2017 05:... | "10/02/2020 05:... | "5f0bdf9d-fa78-... | "5f0bdf9d-fa78-... | 14 | null | "C48345" | "OVAL" | null | 1 | null | "A;73" | null | "C48330" | "YELLOW" | null | "RISPERIDONE 3 ... | "RISPERIDONE[RI... | "LACTOSE MONOHY... | "HRX" | "SCD" | "risperidone 3 ... | 312832 | "10/02/2020 04:... | "65862-123" | 0 | null | 658620123 | 65862 | 123 | "Risperidone" | "active" | 20180924 | "5d2750a4-025a-... | null | "C42931" | "34391-3" | null | null | "LABELER" | "Aurobindo Phar... | "C73584" | null | null | false | null | 21 | null | null | true | false | false | false |
67902 | true | "06/27/2019 10:... | "10/02/2020 05:... | "572e672e-b759-... | "572e672e-b759-... | 19 | null | "C48336" | "CAPSULE" | null | 1 | null | "AT146" | null | "C48333" | "BLUE" | null | "IBUPROFEN 200 ... | "IBUPROFEN[IBUP... | "FD&C BLUE NO. ... | "HOTC" | "SCD" | "ibuprofen 200 ... | 310964 | "10/02/2020 03:... | "50804-750" | 0 | null | 508040750 | 50804 | 750 | "Ibuprofen" | "active" | 20191101 | "148c7665-22d5-... | null | "C42954" | null | null | null | "LABELER" | "Good Sense (Ge... | "C73584" | null | null | false | null | 2 | null | null | true | false | false | false |
75997 | true | "09/20/2019 09:... | "10/02/2020 05:... | "6f17cc91-86b3-... | "6f17cc91-86b3-... | 12 | null | "C48348" | "ROUND" | null | 1 | null | "T;12" | null | "C48325" | "WHITE" | null | "Iloperidone 12... | "Iloperidone[Il... | "silicon dioxid... | "HRX" | "SCD" | "iloperidone 12... | 848732 | "10/02/2020 04:... | "51672-4184" | 0 | null | 516724184 | 51672 | 4184 | "Iloperidone" | "active" | 20190802 | "6787555e-8a11-... | null | "C42998" | null | null | null | "LABELER" | "Taro Pharmaceu... | "C73584" | null | null | false | null | 1 | null | null | true | false | false | false |
1288 | true | "10/17/2017 05:... | "10/17/2017 05:... | "02a23e48-f371-... | "02a23e48-f371-... | 23 | null | "C48336" | "CAPSULE" | null | 1 | null | "RX681" | null | "C48330;C48325" | "YELLOW;WHITE" | null | "FENOPROFEN CAL... | "FENOPROFEN CAL... | "CROSPOVIDONE;M... | "HRX" | null | "Fenoprofen 200... | 1799325 | null | "54288-129" | 0 | null | 542880129 | 54288 | 129 | "FENORTHO" | "active" | 20160614 | "91b0ac5b-994c-... | null | "C25158" | null | null | null | "LABELER" | "BPI Labs LLC" | "C73594" | null | null | false | null | 2 | null | null | false | true | false | false |
53601 | true | "10/17/2017 09:... | "10/02/2020 05:... | "d2213ffd-18f6-... | "d2213ffd-18f6-... | 12 | null | "C48348" | "ROUND" | null | 1 | null | "BA;300" | null | "C48330" | "YELLOW" | null | "BUTALBITAL 50 ... | "BUTALBITAL[BUT... | "STARCH, CORN;C... | "HRX" | "SCD" | "acetaminophen ... | 1249617 | "10/02/2020 03:... | "68682-306" | 0 | null | 686820306 | 68682 | 306 | "Butalbital and... | "active" | 20200402 | "18ee9ab7-9e5d-... | null | "C42998" | null | "C48676" | "CIII" | "LABELER" | "Oceanside Phar... | "C73584" | null | null | false | null | 3 | null | null | true | false | false | false |
1528 | true | "10/17/2017 05:... | "10/02/2020 05:... | "3b8a7426-6f1c-... | "3b8a7426-6f1c-... | 6 | null | "C48348" | "ROUND" | null | 1 | null | "M53;LU" | null | "C48325" | "WHITE" | null | "ESTRADIOL 0.5 ... | "ESTRADIOL[ESTR... | "COPOVIDONE K25... | "HRX" | "BPCK" | "{28 (estradiol... | 1806683 | "10/02/2020 03:... | "68180-829" | 0 | null | 681800829 | 68180 | 829 | "AMABELZ" | "completed" | 20200928 | "34d4f5d6-6526-... | null | "C42998" | null | null | null | "LABELER" | "Lupin Pharmace... | "C73584" | null | null | false | null | 7 | null | null | true | false | false | false |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
19475 | true | "10/17/2017 05:... | "10/02/2020 05:... | "be032f1e-c123-... | "be032f1e-c123-... | 8 | null | "C48348" | "ROUND" | null | 1 | null | "M;104" | null | "C48325" | "WHITE" | null | "MEMANTINE HYDR... | "MEMANTINE HYDR... | "SILICON DIOXID... | "HRX" | "SCD" | "memantine hydr... | 996561 | "10/02/2020 04:... | "0378-1104" | 0 | null | 3781104 | 378 | 1104 | "Memantine Hydr... | "completed" | 20140924 | "4b207674-ac13-... | null | "C42998" | null | null | null | "LABELER" | "Mylan Pharmace... | "C73584" | null | null | false | null | 5 | null | null | true | false | false | false |
78691 | true | "12/06/2019 06:... | "10/02/2020 05:... | "3c7ef3cf-f7f9-... | "3c7ef3cf-f7f9-... | 20 | null | "C48336" | "CAPSULE" | null | 1 | null | "P19" | null | "C48331" | "ORANGE" | null | "ACETAMINOPHEN ... | "ACETAMINOPHEN[... | "BUTYLATED HYDR... | "HOTC" | "SCD" | "acetaminophen ... | 1086997 | "10/02/2020 04:... | "72476-848" | 0 | null | 724760848 | 72476 | 848 | "Multi-Symptom ... | "active" | 20191029 | "c4f51f20-dd42-... | null | "C42954" | null | null | null | "LABELER" | "Care One (Reta... | "C73603" | null | null | false | null | 1 | null | null | true | false | false | true |
38030 | true | "10/17/2017 05:... | "10/02/2020 05:... | "e08920c2-04a3-... | "e08920c2-04a3-... | 9 | null | "C48348" | "ROUND" | null | 1 | null | "D99" | null | "C48325" | "WHITE" | null | "LAMOTRIGINE 25... | "LAMOTRIGINE[LA... | "MAGNESIUM CARB... | "HRX" | "SCD" | "lamotrigine 25... | 311264 | "10/02/2020 04:... | "65862-362" | 0 | null | 658620362 | 65862 | 362 | "Lamotrigine" | "active" | 20191029 | "59344318-d7b4-... | null | "C42893" | "34391-3" | null | null | "LABELER" | "Aurobindo Phar... | "C73584" | null | null | false | null | 20 | null | null | true | false | false | false |
78672 | true | "12/06/2019 06:... | "10/02/2020 05:... | "ee1477ed-00c4-... | "ee1477ed-00c4-... | 17 | null | "C48345" | "OVAL" | null | 1 | null | "AAA;1139" | null | "C48333" | "BLUE" | null | "ACETAMINOPHEN ... | "ACETAMINOPHEN[... | "ACESULFAME POT... | "HOTC" | "GPCK" | "{8 (acetaminop... | 1801964 | "10/02/2020 04:... | "37808-286" | 2 | "Acetaminophen,... | 378080286 | 37808 | 286 | "Cold Flu Sever... | null | 20191004 | "941e4166-0964-... | null | "C42897" | null | null | null | "LABELER" | "HEB" | "C73603" | null | null | false | null | 2 | null | null | true | false | false | true |
71471 | true | "06/29/2019 04:... | "10/02/2020 05:... | "a2754618-3df1-... | "a2754618-3df1-... | 19 | null | "C48345" | "OVAL" | null | 1 | null | "600" | null | "C48325" | "WHITE" | null | "AZITHROMYCIN D... | "AZITHROMYCIN D... | "CROSCARMELLOSE... | "HRX" | "SCD" | "azithromycin 6... | 204844 | "10/02/2020 03:... | "69452-173" | 0 | null | 694520173 | 69452 | 173 | "Azithromycin" | "active" | 20200624 | "a8d7dd04-c391-... | null | "C42931" | null | null | null | "LABELER" | "Bionpharma Inc... | "C73584" | null | null | false | null | 6 | null | null | true | false | false | false |
68841 | true | "06/27/2019 10:... | "10/02/2020 05:... | "7af82ca5-ea36-... | "7af82ca5-ea36-... | 16 | null | "C48345" | "OVAL" | null | 1 | null | "1007" | null | "C48333" | "BLUE" | null | "IBUPROFEN 200 ... | "IBUPROFEN[IBUP... | "FD&C BLUE NO. ... | "HOTC" | "SCD" | "diphenhydramin... | 901814 | "10/02/2020 03:... | "36800-756" | 0 | null | 368000756 | 36800 | 756 | "Ibuprofen PM" | "active" | 20191014 | "b181db0f-8b6a-... | null | "C42954" | null | null | null | "LABELER" | "TOP CARE (Topc... | "C73584" | null | null | false | null | 2 | null | null | true | false | false | false |
7862 | true | "10/17/2017 05:... | "10/02/2020 05:... | "edc05451-822e-... | "edc05451-822e-... | 10 | null | "C48345" | "OVAL" | null | 1 | null | "4H2" | null | "C48325" | "WHITE" | null | "CETIRIZINE HYD... | "CETIRIZINE HYD... | "STARCH, CORN;H... | "HOTC" | null | null | null | "10/02/2020 03:... | "49738-600" | 0 | null | 497380600 | 49738 | 600 | "smart sense al... | "active" | 20160721 | "9ceb8c88-c221-... | null | "C42998" | null | null | null | "LABELER" | "Kmart Corporat... | "C73584" | null | null | false | null | 3 | null | null | true | false | false | false |
69440 | true | "06/27/2019 10:... | "10/02/2020 05:... | "facd5359-fc48-... | "facd5359-fc48-... | 12 | null | "C48345" | "OVAL" | null | 1 | null | "20" | null | "C48332" | "BROWN" | null | "OMEPRAZOLE 20 ... | "OMEPRAZOLE[OME... | "CARNAUBA WAX;F... | "HOTC" | "SCD" | "omeprazole 20 ... | 402014 | "10/02/2020 03:... | "70000-0356" | 0 | null | 700000356 | 70000 | 356 | "leader omepraz... | "active" | 20180316 | "facd5359-fc48-... | null | "C42905" | null | null | null | "LABELER" | "Cardinal Healt... | "C73594" | null | null | false | null | 1 | null | null | true | false | false | false |
53092 | true | "10/17/2017 09:... | "10/02/2020 05:... | "b46f11ca-bd09-... | "b46f11ca-bd09-... | 19 | null | "C48348" | "ROUND" | null | 1 | null | "L9Y7" | null | "C48328;C48331;... | "PINK;ORANGE;YE... | null | "CALCIUM CARBON... | "CALCIUM CARBON... | "CITRIC ACID MO... | "HOTC" | "SCD" | "calcium carbon... | 308915 | "10/02/2020 04:... | "41163-508" | 0 | null | 411630508 | 41163 | 508 | "equaline antac... | "active" | 20181210 | "10041dc3-e9bf-... | null | "C42893" | null | null | null | "LABELER" | "Supervalu Inc" | "C73603" | null | null | false | null | 2 | null | null | true | false | false | false |
4956 | true | "10/17/2017 05:... | "10/02/2020 05:... | "f8f84be1-e3b1-... | "f8f84be1-e3b1-... | 19 | null | "C48345" | "OVAL" | null | 1 | null | "44;677" | null | "C48329" | "GREEN" | null | "ACETAMINOPHEN ... | "ACETAMINOPHEN[... | "STARCH, CORN;D... | "HOTC" | "SCD" | "acetaminophen ... | 1546881 | "10/02/2020 04:... | "41250-877" | 0 | null | 412500877 | 41250 | 877 | "Nite time Seve... | "active" | 20200513 | "a4d9c4a9-8e8f-... | null | "C42931" | null | null | null | "LABELER" | "Meijer Distrib... | "C73603" | null | null | false | null | 8 | null | null | true | false | false | false |
19029 | true | "10/17/2017 05:... | "10/02/2020 05:... | "254b2202-b14d-... | "254b2202-b14d-... | 19 | null | "C48336" | "CAPSULE" | null | 1 | null | "APO;10;40" | null | "C48333" | "BLUE" | null | "Amlodipine bes... | "Amlodipine bes... | "Cellulose, mic... | "HRX" | null | null | null | "10/02/2020 03:... | "60505-3226" | 0 | null | 605053226 | 60505 | 3226 | "Amlodipine and... | "active" | 20170818 | "b332e90b-8d4a-... | null | "C25158" | null | null | null | "LABELER" | "Apotex Corp." | "C73584" | null | null | false | null | 6 | null | null | true | false | false | false |
13396 | true | "10/17/2017 05:... | "10/17/2017 05:... | "cec47488-ebad-... | "cec47488-ebad-... | 8 | null | "C48348" | "ROUND" | null | 1 | null | "DF;15" | null | "C48331" | "ORANGE" | null | "DARIFENACIN 15... | "DARIFENACIN[DA... | "ANHYDROUS DIBA... | "HRX" | null | "24 HR darifena... | 543021 | null | "35356-272" | 0 | null | 353560272 | 35356 | 272 | "Enablex" | "active" | 20120305 | "85782ed3-ab22-... | "0078-0420" | "C42927" | "34391-3" | null | null | "LABELER" | "Lake Erie Medi... | "C73594" | null | null | false | 1 | 3613 | null | null | false | true | false | false |
When importing pillbox.csv file initially, an error message actually came up that showed, “…Could not parse ‘10.16’ as dtype Int64 at column 7…”. One way to get around this was to add “ignore_errors” to bypass this error first in order to load the dataset first. This error could be fixed when checking and converting data types for columns.
Initial data wrangling
The Pillbox dataset link from NLM provided a list of column information for users. To quickly see what were the columns in the dataset, we could use “df.glimpse()” to read column names, data types and the first 10 items in each column.
print(df.glimpse())
Rows: 83925
Columns: 55
$ ID <Int64> 41846, 8100, 5258, 21271, 77050, 76916, 20016, 67902, 75997, 1288
$ Enabled? <Boolean> True, True, True, True, True, True, True, True, True, True
$ created at <Utf8> 10/17/2017 05:32:23 PM, 10/17/2017 05:29:56 PM, 10/17/2017 05:29:44 PM, 10/17/2017 05:30:52 PM, 09/20/2019 09:10:47 PM, 09/20/2019 09:10:41 PM, 10/17/2017 05:30:47 PM, 06/27/2019 10:45:17 PM, 09/20/2019 09:09:57 PM, 10/17/2017 05:29:25 PM
$ updated at <Utf8> 10/02/2020 05:14:07 PM, 10/02/2020 04:59:28 PM, 10/17/2017 05:29:44 PM, 10/02/2020 05:10:28 PM, 10/02/2020 05:14:51 PM, 10/02/2020 05:15:50 PM, 10/02/2020 05:12:38 PM, 10/02/2020 05:04:25 PM, 10/02/2020 05:12:06 PM, 10/17/2017 05:29:25 PM
$ spp <Utf8> 471fa2f1-73a0-49be-89f3-d3e2cfdaeca0-0603-5892-0, 116e13c1-ac50-400f-880f-5779f0155b96-59779-074-0, 827ce261-307b-4398-8993-333c08e601fe-49884-129-0, f7f1c99e-1a67-4b34-b1f4-0ac38b9d8006-61480-137-0, ecb28fcb-f0d1-4558-b460-ecabd0f6009e-62332-365-0, 442e41da-24c2-412f-be6b-d549692943fd-70748-132-0, 5f0bdf9d-fa78-45e8-913a-81beff57cf34-65862-123-0, 572e672e-b759-4db1-9e8f-279b1f6f3c51-50804-750-0, 6f17cc91-86b3-42e3-9bf2-935dd360c3eb-51672-4184-0, 02a23e48-f371-448b-92b2-e2d010be1886-54288-129-0
$ setid <Utf8> 471fa2f1-73a0-49be-89f3-d3e2cfdaeca0, 116e13c1-ac50-400f-880f-5779f0155b96, 827ce261-307b-4398-8993-333c08e601fe, f7f1c99e-1a67-4b34-b1f4-0ac38b9d8006, ecb28fcb-f0d1-4558-b460-ecabd0f6009e, 442e41da-24c2-412f-be6b-d549692943fd, 5f0bdf9d-fa78-45e8-913a-81beff57cf34, 572e672e-b759-4db1-9e8f-279b1f6f3c51, 6f17cc91-86b3-42e3-9bf2-935dd360c3eb, 02a23e48-f371-448b-92b2-e2d010be1886
$ splsize <Int64> 16, 10, 7, 11, 6, 9, 14, 19, 12, 23
$ pillbox_size <Utf8> None, None, None, None, None, None, None, None, None, None
$ splshape <Utf8> C48336, C48348, C48346, C48348, C48348, C48348, C48345, C48336, C48348, C48336
$ splshape_text <Utf8> CAPSULE, ROUND, PENTAGON (5 SIDED), ROUND, ROUND, ROUND, OVAL, CAPSULE, ROUND, CAPSULE
$ pillbox_shape_text <Utf8> None, None, None, None, None, None, None, None, None, None
$ splscore <Int64> 1, 1, 1, 2, 1, 1, 1, 1, 1, 1
$ pillbox_score <Int64> None, None, 2, None, None, None, None, None, None, None
$ splimprint <Utf8> 5892;V, I2, par;129, LL, L;524, LU;V06, A;73, AT146, T;12, RX681
$ pillbox_imprint <Utf8> None, None, None, None, None, None, None, None, None, None
$ splcolor <Utf8> C48328, C48331, C48329, C48325, C48325, C48325, C48330, C48333, C48325, C48330;C48325
$ splcolor_text <Utf8> PINK, ORANGE, GREEN, WHITE, WHITE, WHITE, YELLOW, BLUE, WHITE, YELLOW;WHITE
$ pillbox_color_text <Utf8> None, None, None, None, None, None, None, None, None, None
$ spl_strength <Utf8> TEMAZEPAM 15 mg;, IBUPROFEN 200 mg;, DEXAMETHASONE 6 mg;, Nickel Sulfate 1 [hp_X];Potassium Bromide 1 [hp_X];Sodium Bromide 1 [hp_X];Zinc Sulfate Anhydrous 1 [hp_X];Sulfur 1 [hp_X];, CLONAZEPAM 0.25 mg;, SILDENAFIL CITRATE 50 mg;, RISPERIDONE 3 mg;, IBUPROFEN 200 mg;, Iloperidone 12 mg;, FENOPROFEN CALCIUM 200 mg;
$ spl_ingredients <Utf8> TEMAZEPAM[TEMAZEPAM];, IBUPROFEN[IBUPROFEN];, DEXAMETHASONE[DEXAMETHASONE];, Nickel Sulfate[NICKEL CATION];Potassium Bromide[BROMIDE ION];Sodium Bromide[BROMIDE ION];Zinc Sulfate Anhydrous[ZINC CATION];Sulfur[Sulfur];, CLONAZEPAM[CLONAZEPAM];, SILDENAFIL CITRATE[SILDENAFIL];, RISPERIDONE[RISPERIDONE];, IBUPROFEN[IBUPROFEN];, Iloperidone[Iloperidone];, FENOPROFEN CALCIUM[FENOPROFEN];
$ spl_inactive_ing <Utf8> SILICON DIOXIDE;EDETATE DISODIUM;LACTOSE MONOHYDRATE;MAGNESIUM STEARATE;CELLULOSE, MICROCRYSTALLINE;STARCH, CORN;SODIUM LAURYL SULFATE;FD&C BLUE NO. 1;FD&C RED NO. 40;GELATIN;TITANIUM DIOXIDE;BUTYL ALCOHOL;, SILICON DIOXIDE;STARCH, CORN;CROSCARMELLOSE SODIUM;FD&C RED NO. 40;FD&C YELLOW NO. 6;FERRIC OXIDE RED;MICROCRYSTALLINE CELLULOSE;POLYETHYLENE GLYCOL, UNSPECIFIED;POLYVINYL ALCOHOL, UNSPECIFIED;STEARIC ACID;TALC;TITANIUM DIOXIDE;, ANHYDROUS LACTOSE;CELLULOSE, MICROCRYSTALLINE;CROSCARMELLOSE SODIUM;STEARIC ACID;MAGNESIUM STEARATE;FD&C BLUE NO. 1;D&C YELLOW NO. 10;FD&C YELLOW NO. 6;, None, SORBITOL;ASPARTAME;SODIUM LAURYL SULFATE;CROSPOVIDONE;MANNITOL;SILICON DIOXIDE;TALC;MAGNESIUM STEARATE;, ANHYDROUS DIBASIC CALCIUM PHOSPHATE;CELLULOSE, MICROCRYSTALLINE;CROSCARMELLOSE SODIUM;HYPROMELLOSE 2910 (6 MPA.S);MAGNESIUM STEARATE;POLYETHYLENE GLYCOL 400;SILICON DIOXIDE;TITANIUM DIOXIDE;, LACTOSE MONOHYDRATE;MICROCRYSTALLINE CELLULOSE;SILICON DIOXIDE;MAGNESIUM STEARATE;HYPROMELLOSE 2910 (6 MPA.S);TITANIUM DIOXIDE;POLYETHYLENE GLYCOL 400;D&C YELLOW NO. 10;, FD&C BLUE NO. 1;GELATIN;POLYETHYLENE GLYCOL, UNSPECIFIED;POTASSIUM HYDROXIDE;WATER;SORBITOL;SORBITAN;MEDIUM-CHAIN TRIGLYCERIDES;FD&C YELLOW NO. 6;LECITHIN, SOYBEAN;, silicon dioxide;crospovidone (15 MPA.S AT 5%);hypromellose, unspecified;lactose monohydrate;magnesium stearate;microcrystalline cellulose;water;, CROSPOVIDONE;MAGNESIUM STEARATE;SODIUM LAURYL SULFATE;TALC;GELATIN;TITANIUM DIOXIDE;BROWN IRON OXIDE;
$ source <Utf8> HRX, HOTC, HRX, HOMEO, HRX, HRX, HRX, HOTC, HRX, HRX
$ rxtty <Utf8> None, SCD, None, None, SCD, SCD, SCD, SCD, SCD, None
$ rxstring <Utf8> None, ibuprofen 200 MG Oral Tablet, Dexamethasone 6 MG Oral Tablet, None, clonazepam 0.25 MG Disintegrating Oral Tablet, sildenafil 50 MG Oral Tablet, risperidone 3 MG Oral Tablet, ibuprofen 200 MG Oral Capsule, iloperidone 12 MG Oral Tablet, Fenoprofen 200 MG Oral Capsule [Fenortho]
$ rxcui <Int64> None, 310965, 197583, None, 349195, 312950, 312832, 310964, 848732, 1799325
$ RxNorm Update time <Utf8> 10/02/2020 04:21:55 PM, 10/02/2020 03:07:40 PM, None, 10/02/2020 04:01:35 PM, 10/02/2020 04:25:40 PM, 10/02/2020 04:30:41 PM, 10/02/2020 04:13:39 PM, 10/02/2020 03:30:07 PM, 10/02/2020 04:10:33 PM, None
$ product_code <Utf8> 0603-5892, 59779-074, 49884-129, 61480-137, 62332-365, 70748-132, 65862-123, 50804-750, 51672-4184, 54288-129
$ part_num <Int64> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
$ part_medicine_name <Utf8> None, None, None, None, None, None, None, None, None, None
$ ndc9 <Int64> 6035892, 597790074, 498840129, 614800137, 623320365, 707480132, 658620123, 508040750, 516724184, 542880129
$ ndc_labeler_code <Int64> 603, 59779, 49884, 61480, 62332, 70748, 65862, 50804, 51672, 54288
$ ndc_product_code <Int64> 5892, 74, 129, 137, 365, 132, 123, 750, 4184, 129
$ medicine_name <Utf8> Temazepam, ibuprofen, Dexamethasone, Acunol, CLONAZEPAM, SILDENAFIL, Risperidone, Ibuprofen, Iloperidone, FENORTHO
$ marketing_act_code <Utf8> completed, active, active, active, active, active, active, active, active, active
$ effective_time <Int64> 20160406, 20191120, 20120516, 20190909, 20190701, 20191001, 20180924, 20191101, 20190802, 20160614
$ file_name <Utf8> d912ca54-6569-4e58-a8ef-620eddd03163.xml, 55de9f94-89b2-4bfb-a41d-6660ba6e7a6d.xml, 85a9eebb-be74-43a1-a36f-26ae4c4131aa.xml, 029eaf64-e66f-447e-9ac3-037620370f85.xml, ba5120ce-ed74-40be-936d-c172805d88d1.xml, 17c537d9-b2e6-4d71-a481-c7c7cafdb3a2.xml, 5d2750a4-025a-40a1-97d2-d9447a37afbb.xml, 148c7665-22d5-494c-9add-98428435f392.xml, 6787555e-8a11-481c-b05c-179b0aedcf5c.xml, 91b0ac5b-994c-468f-9331-542b8f92f9a8.xml
$ equal_product_code <Utf8> None, None, None, None, None, None, None, None, None, None
$ dosage_form <Utf8> C25158, C42931, C42998, C42998, C42999, C42931, C42931, C42954, C42998, C25158
$ document_type <Utf8> None, 34390-5, 34391-3, 34391-3, None, None, 34391-3, None, None, None
$ dea_schedule_code <Utf8> C48677, None, None, None, C48677, None, None, None, None, None
$ dea_schedule_name <Utf8> CIV, None, None, None, CIV, None, None, None, None, None
$ author_type <Utf8> LABELER, LABELER, LABELER, LABELER, LABELER, LABELER, LABELER, LABELER, LABELER, LABELER
$ author <Utf8> Qualitest Pharmaceuticals, CVS Pharmacy, Par Pharmaceutical Inc., PLYMOUTH HEALTHCARE PRODUCTS LLC, Alembic Pharmaceuticals Inc., Lupin Pharmaceuticals, Inc., Aurobindo Pharma Limited, Good Sense (Geiss, Destin & Dunn, Inc.), Taro Pharmaceuticals U.S.A., Inc., BPI Labs LLC
$ approval_code <Utf8> C73584, C73584, C73584, C73614, C73584, C73584, C73584, C73584, C73584, C73594
$ image_source <Utf8> None, None, NLM, None, None, None, None, None, None, None
$ splimage <Utf8> None, None, 498840129, None, None, None, None, None, None, None
$ has_image <Boolean> False, False, True, False, False, False, False, False, False, False
$ epc_match <Int64> None, None, None, None, None, None, None, None, None, None
$ version_number <Int64> 5, 4, 4, 8, 3, 4, 21, 2, 1, 2
$ laberer_code <Utf8> None, None, None, None, None, None, None, None, None, None
$ application_number <Utf8> None, None, None, None, None, None, None, None, None, None
$ updated <Boolean> True, True, False, True, True, True, True, True, True, False
$ stale <Boolean> False, False, True, False, False, False, False, False, False, True
$ new <Boolean> False, False, False, False, False, False, False, False, False, False
$ Pillbox Value <Boolean> False, False, True, False, False, False, False, False, False, False
A relatively simple dataset would be extracted first for these pills data since I was an inexperienced user of Rust. Therefore, I’ve selected only certain columns for this purpose.
= df.select([# shapes of medicines
df_med "splshape_text",
# colours of medicines
"splcolor_text",
# strengths of medicines
"spl_strength",
# inactive ingredients/excipients in medicines
"spl_inactive_ing",
# dosage forms of medicines e.g. capsules or tablets etc.
"dosage_form"]
) df_med
splshape_text | splcolor_text | spl_strength | spl_inactive_ing | dosage_form |
---|---|---|---|---|
str | str | str | str | str |
"CAPSULE" | "PINK" | "TEMAZEPAM 15 m... | "SILICON DIOXID... | "C25158" |
"ROUND" | "ORANGE" | "IBUPROFEN 200 ... | "SILICON DIOXID... | "C42931" |
"PENTAGON (5 SI... | "GREEN" | "DEXAMETHASONE ... | "ANHYDROUS LACT... | "C42998" |
"ROUND" | "WHITE" | "Nickel Sulfate... | null | "C42998" |
"ROUND" | "WHITE" | "CLONAZEPAM 0.2... | "SORBITOL;ASPAR... | "C42999" |
"ROUND" | "WHITE" | "SILDENAFIL CIT... | "ANHYDROUS DIBA... | "C42931" |
"OVAL" | "YELLOW" | "RISPERIDONE 3 ... | "LACTOSE MONOHY... | "C42931" |
"CAPSULE" | "BLUE" | "IBUPROFEN 200 ... | "FD&C BLUE NO. ... | "C42954" |
"ROUND" | "WHITE" | "Iloperidone 12... | "silicon dioxid... | "C42998" |
"CAPSULE" | "YELLOW;WHITE" | "FENOPROFEN CAL... | "CROSPOVIDONE;M... | "C25158" |
"ROUND" | "YELLOW" | "BUTALBITAL 50 ... | "STARCH, CORN;C... | "C42998" |
"ROUND" | "WHITE" | "ESTRADIOL 0.5 ... | "COPOVIDONE K25... | "C42998" |
... | ... | ... | ... | ... |
"ROUND" | "WHITE" | "MEMANTINE HYDR... | "SILICON DIOXID... | "C42998" |
"CAPSULE" | "ORANGE" | "ACETAMINOPHEN ... | "BUTYLATED HYDR... | "C42954" |
"ROUND" | "WHITE" | "LAMOTRIGINE 25... | "MAGNESIUM CARB... | "C42893" |
"OVAL" | "BLUE" | "ACETAMINOPHEN ... | "ACESULFAME POT... | "C42897" |
"OVAL" | "WHITE" | "AZITHROMYCIN D... | "CROSCARMELLOSE... | "C42931" |
"OVAL" | "BLUE" | "IBUPROFEN 200 ... | "FD&C BLUE NO. ... | "C42954" |
"OVAL" | "WHITE" | "CETIRIZINE HYD... | "STARCH, CORN;H... | "C42998" |
"OVAL" | "BROWN" | "OMEPRAZOLE 20 ... | "CARNAUBA WAX;F... | "C42905" |
"ROUND" | "PINK;ORANGE;YE... | "CALCIUM CARBON... | "CITRIC ACID MO... | "C42893" |
"OVAL" | "GREEN" | "ACETAMINOPHEN ... | "STARCH, CORN;D... | "C42931" |
"CAPSULE" | "BLUE" | "Amlodipine bes... | "Cellulose, mic... | "C25158" |
"ROUND" | "ORANGE" | "DARIFENACIN 15... | "ANHYDROUS DIBA... | "C42927" |
Web scraping
This was not planned initially but this might make my life a lot easier if I could scrape the dosage form table found through the Pillbox link, since the dosage form column was full of C-letter code. These dosage form code were hard to understand, so once I’ve got the code along with corresponding dosage forms in texts, the web-scraped information would be converted into a dataframe for further data manipulations.
# Uncomment lines below to install libraries needed for web-scraping
#!pip install requests
#!pip install beautifulsoup4
Import libraries
import requests
from bs4 import BeautifulSoup
import pandas as pd
I’ve opted for using Beautiful Soup as the web-scraping library in Python, along with the requests library to be able to make a URL request call to retrieve web information. There were of course many other tools available as well. A caveat to be taken into consideration was that when web-scraping, it was always recommended to check whether the information being scraped were under a specific copyright license and so on. In this case, I’ve checked that the dosage form table link - https://www.fda.gov/industry/structured-product-labeling-resources/dosage-forms was from US FDA and it was stated that the information (both texts and graphs) were not copyrighted (unless otherwise stated, for this particular web page, there was nothing stated along those lines), but a link to this webpage should be provided so that readers could access most current information in the future.
Send web requests
# Specify URL address with information intended for web-scraping
= "https://www.fda.gov/industry/structured-product-labeling-resources/dosage-forms"
url # Request the web information via requests library & save under a data object
= requests.get(url) data
Parse web content
# Parse the web content from the URL link by using Beautiful Soup
= BeautifulSoup(data.content, "html.parser") soup
Print web content
# Print out the scraped web information
print(soup.prettify())
<!DOCTYPE html>
<html dir="ltr" lang="en" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# schema: http://schema.org/ sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema# ">
<head>
<meta charset="utf-8"/>
<script async="" src="https://www.googletagmanager.com/gtag/js?id=UA-22737364-1">
</script>
<meta content="This web page has a list of dosage form terms and National Cancer Institute Thesaurus concept codes associated with those term for use in Structured Product Labeling (SPL) documents submitted to FDA." name="description"/>
<meta content="Dosage Forms" name="dcterms.title"/>
<meta content="Office of the Commissioner" name="dcterms.creator"/>
<meta content="This web page has a list of dosage form terms and National Cancer Institute Thesaurus concept codes associated with those term for use in Structured Product Labeling (SPL) documents submitted to FDA." name="dcterms.description"/>
<meta content="FDA" name="dcterms.publisher"/>
<meta content="DO NOT USE - Office of Health Informatics" name="dcterms.contributor"/>
<meta content="Article" name="dcterms.type"/>
<meta content="FDA" name="dcterms.source"/>
<meta content="Manufacturers" name="dcterms.audience"/>
<meta content="U.S. Food and Drug Administration" property="og:site_name"/>
<meta content="Article" property="og:type"/>
<meta content="https://www.fda.gov/industry/structured-product-labeling-resources/dosage-forms" property="og:url"/>
<meta content="Dosage Forms" property="og:title"/>
<meta content="Thu, 02/03/2022 - 10:05" property="og:updated_time"/>
<meta content="FDA" property="article:publisher"/>
<meta content="Thu, 02/03/2022 - 09:02" property="article:published_time"/>
<meta content="Thu, 02/03/2022 - 10:05" property="article:modified_time"/>
<meta content="tWxlDhm4ANdksJZPj7TBmHgNoMqZCnecPp0Aa2vC9XA" name="google-site-verification"/>
<meta content="summary_large_image" name="twitter:card"/>
<meta content="@US_FDA" name="twitter:site"/>
<meta content="Dosage Forms" name="twitter:title"/>
<meta content="@US_FDA" name="twitter:creator"/>
<meta content="width" name="MobileOptimized"/>
<meta content="true" name="HandheldFriendly"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Article",
"headline": "Dosage Forms",
"name": "Dosage Forms",
"description": "This web page has a list of dosage form terms and National Cancer Institute Thesaurus concept codes associated with those term for use in Structured Product Labeling (SPL) documents submitted to FDA.",
"image": {
"@type": "ImageObject",
"representativeOfPage": "True"
},
"datePublished": "\u003Ctime datetime=\u00222022-02-03T09:02:47Z\u0022\u003EThu, 02/03/2022 - 09:02\u003C/time\u003E",
"dateModified": "\u003Ctime datetime=\u00222022-02-03T10:05:00Z\u0022\u003EThu, 02/03/2022 - 10:05\u003C/time\u003E",
"author": {
"@type": "Organization",
"name": "\u003Ca href=\u0022/taxonomy/term/819\u0022 hreflang=\u0022en\u0022\u003EOffice of the Commissioner\u003C/a\u003E"
},
"publisher": {
"@type": "Organization",
"name": "FDA"
}
},
{
"@type": "WebSite"
}
]
}
</script>
<meta content="https://www.fda.gov/themes/custom/preview/img/FDA-Social-Graphic.png" property="og:image"/>
<meta content="https://www.fda.gov/themes/custom/preview/img/FDA-Social-Graphic.png" name="twitter:image"/>
<meta content="This web page has a list of dosage form terms and National Cancer Institute Thesaurus concept codes associated with those term for use in Structured Product Labeling (SPL) documents submitted to FDA." property="og:description"/>
<meta content="This web page has a list of dosage form terms and National Cancer Institute Thesaurus concept codes associated with those term for use in Structured Product Labeling (SPL) documents submitted to FDA." property="twitter:description"/>
<link href="/themes/custom/preview/favicon.ico" rel="icon" type="image/vnd.microsoft.icon"/>
<link href="https://www.fda.gov/industry/structured-product-labeling-resources/dosage-forms" hreflang="en" rel="alternate"/>
<link href="https://www.fda.gov/industry/structured-product-labeling-resources/dosage-forms" rel="canonical"/>
<link href="https://www.fda.gov/node/358928" rel="shortlink"/>
<script defer="" src="/files/google_tag/production/google_tag.script.js?rt10fa">
</script>
<title>
Dosage Forms | FDA
</title>
<link href="/files/css/css_VQK8mppKquBsweKvwlYQE65XHMoWqDIaAS_w8yNPtaw.css" media="all" rel="stylesheet"/>
<link href="/files/css/css_wZl-oUwtZViT4j1MoWRni-RbKGdqgfm_QYwF8I2qvkA.css" media="all" rel="stylesheet"/>
<script async="" src="https://script.crazyegg.com/pages/scripts/0024/3700.js">
</script>
<script id="_fed_an_ua_tag" language="javascript" src="https://dap.digitalgov.gov/Universal-Federated-Analytics-Min.js?agency=HHS&subagency=FDA&sdor=fda.gov&dclink=true">
</script>
<script>
window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments)};gtag("js", new Date());gtag("config", "UA-22737364-1", {"groups":"default","anonymize_ip":true,"allow_ad_personalization_signals":false});
</script>
</head>
<body class="role-anonymous path-node page-node-type-article has-glyphicons">
<div class="sr-only" id="quicklinks">
<ul>
<li>
<a class="sr-only sr-only-focusable" href="#main-content" tabindex="1">
Skip to main content
</a>
</li>
<li>
<a class="sr-only sr-only-focusable" href="#search-form" tabindex="1">
Skip to FDA Search
</a>
</li>
<li>
<a class="sr-only sr-only-focusable" href="#section-nav" tabindex="1">
Skip to in this section menu
</a>
</li>
<li>
<a class="sr-only sr-only-focusable" href="#footer-heading" tabindex="1">
Skip to footer links
</a>
</li>
</ul>
</div>
<noscript aria-hidden="true">
<iframe height="0" src="https://www.googletagmanager.com/ns.html?id=GTM-M95XGZW" style="display:none;visibility:hidden" width="0">
</iframe>
</noscript>
<div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas="">
<div class="main-container container-fluid">
<div class="row">
<header class="lcds-header container-fluid" role="header">
<div class="row us-masthead">
<div class="usa-banner col-xs-12">
<img alt="U.S. flag" class="usa-banner__us-flag" src="/themes/custom/preview/assets/images/US_Flag.png"/>
<span>
An official website of the United States government
</span>
<a aria-controls="USABannerMenu" aria-expanded="false" class="collapsed" data-target="#USABannerMenu" data-toggle="collapse" id="USMenuButton">
Here’s how you know
<span class="toggle-indicator">
</span>
</a>
<div aria-labelledby="USMenuButton" class="col-xs-12 collapse usa-banner__menu" id="USABannerMenu">
<div aria-hidden="true" class="row usa-banner-content usa-grid usa-accordion-content" id="gov-banner">
<div class="col-xs-12 col-sm-6 col-md-3">
<img alt="Dot gov" class="usa-banner-icon usa-media_block-img" src="/themes/custom/preview/assets/images/icon-dot-gov.svg" style="width:3em;"/>
<div class="usa-media_block-body">
<p>
<strong>
The .gov means it’s official.
</strong>
<br/>
Federal government websites often end in .gov or .mil. Before sharing sensitive information, make sure you're on a federal government site.
</p>
</div>
</div>
<div class="col-xs-12 col-sm-6 col-md-3">
<img alt="SSL" class="usa-banner-icon usa-media_block-img" src="/themes/custom/preview/assets/images/icon-https.svg" style="width:3em;"/>
<div class="usa-media_block-body">
<p>
<strong>
The site is secure.
</strong>
<br/>
The
<strong>
https://
</strong>
ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row fda-masthead">
<div class="col-xs-4 col-md-8">
<a href="/" title="FDA Homepage">
<h1 class="fda-masthead__fda-logo">
U.S. Food and Drug Administration
</h1>
</a>
</div>
<div class="col-xs-8 col-md-4">
<ul class="fda-masthead__item-list">
<li>
<a class="btn btn-default btn-sm fda-masthead__btn-search" id="btn-search" title="">
<span aria-hidden="true" class="fa fa-search">
</span>
<span class="fda-masthead__btn-label">
Search
</span>
</a>
</li>
<li>
<a aria-expanded="true" class="btn btn-default btn-sm fda-masthead__btn-menu collapsed" data-toggle="collapse" href="#primary-nav" id="menu-btn">
<span aria-hidden="true" class="fa fa-bars">
</span>
<span class="fda-masthead__btn-label">
Menu
</span>
</a>
</li>
</ul>
</div>
<form accept-charset="UTF-8" action="/search" class="fda-masthead__search sr-only" id="search-form" method="GET" name="searchForm" role="search">
<div class="search-popover" id="search-popover">
<div class="input-group pull-right" id="search-group">
<label class="sr-only" for="search-query">
Search FDA
</label>
<input aria-autocomplete="list" aria-haspopup="true" class="form-control search-input" id="search-query" name="s" placeholder="Search FDA" title="Enter the terms you wish to search for." type="text"/>
<span class="input-group-btn" id="input-group-btn">
<button class="btn btn-danger search-btn" id="search-btn" title="Search" type="submit">
<span aria-hidden="true" class="fa fa-search">
<span class="sr-only">
Submit search
</span>
</span>
</button>
</span>
</div>
</div>
</form>
</div>
<nav class="lcds-primary-nav row collapse" id="primary-nav">
<div class="col-md-5 col-lg-4">
<section class="lcds-primary-nav__group lcds-primary-nav__group--bordered">
<h2 class="lcds-primary-nav__group-heading">
Featured
</h2>
<ul class="lcds-primary-nav__list lcds-primary-nav__list--featured">
<li class="lcds-primary-nav__list-item">
<a href="/about-fda/contact-fda">
Contact FDA
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/regulatory-information/search-fda-guidance-documents">
FDA Guidance Documents
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/safety/recalls-market-withdrawals-safety-alerts">
Recalls, Market Withdrawals and Safety Alerts
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/news-events/newsroom/press-announcements">
Press Announcements
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/inspections-compliance-enforcement-and-criminal-investigations/compliance-actions-and-activities/warning-letters">
Warning Letters
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/advisory-committees">
Advisory Committees
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/about-fda/en-espanol">
En Español
</a>
</li>
</ul>
</section>
</div>
<div class="col-md-7 col-lg-8">
<section class="lcds-primary-nav__group lcds-primary-nav__group--bordered">
<h2 class="lcds-primary-nav__group-heading">
Products
</h2>
<ul class="lcds-primary-nav__list">
<li class="lcds-primary-nav__list-item">
<a href="/food">
Food
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/drugs">
Drugs
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/medical-devices">
Medical Devices
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/radiation-emitting-products">
Radiation-Emitting Products
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/vaccines-blood-biologics">
Vaccines, Blood, and Biologics
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/animal-veterinary">
Animal and Veterinary
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/cosmetics">
Cosmetics
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/tobacco-products">
Tobacco Products
</a>
</li>
</ul>
</section>
<section class="lcds-primary-nav__group lcds-primary-nav__group--bordered">
<h2 class="lcds-primary-nav__group-heading">
Topics
</h2>
<ul class="lcds-primary-nav__list">
<li class="lcds-primary-nav__list-item">
<a href="/about-fda">
About FDA
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/combination-products">
Combination Products
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/regulatory-information">
Regulatory Information
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/safety">
Safety
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/emergency-preparedness-and-response">
Emergency Preparedness
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/international-programs">
International Programs
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/news-events">
News and Events
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/training-and-continuing-education">
Training and Continuing Education
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/inspections-compliance-enforcement-and-criminal-investigations">
Inspections and Compliance
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/science-research">
Science and Research
</a>
</li>
</ul>
</section>
<section class="lcds-primary-nav__group lcds-primary-nav__group--bordered">
<h2 class="lcds-primary-nav__group-heading">
Information For
</h2>
<ul class="lcds-primary-nav__list">
<li class="lcds-primary-nav__list-item">
<a href="/consumers">
Consumers
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/patients">
Patients
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/industry">
Industry
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/health-professionals">
Health Professionals
</a>
</li>
<li class="lcds-primary-nav__list-item">
<a href="/federal-state-local-tribal-and-territorial-officials">
Federal, State and Local Officials
</a>
</li>
</ul>
</section>
</div>
</nav>
</header>
<div class="col-xs-12">
<div class="hidden" data-drupal-messages-fallback="">
</div>
</div>
<section class="block block-ctools block-entity-viewnode clearfix" data-block-plugin-id="entity_view:node" id="block-entityviewcontent">
<a class="lcds-button--expandable collapsed hidden-md hidden-lg" data-toggle="collapse" href="#section-nav">
In this section
<span class="visible-sm-inline-block">
:
Structured Product Labeling Resources
</span>
</a>
<nav class="lcds-card lcds-section-nav lcds-section-nav hidden-md hidden-lg collapse" id="section-nav">
<ul class="lcds-section-nav__list">
<li>
<a class="lcds-section-nav__section-link lcds-section-nav__link lcds-section-nav__parent-link visible-xs-block visible-sm-block" href="/industry/fda-data-standards-advisory-board/structured-product-labeling-resources" title="Structured Product Labeling Resources">
Structured Product Labeling Resources
</a>
<div class="views-element-container form-group">
<div class="view view-in-this-section view-id-in_this_section view-display-id-block_5 js-view-dom-id-2cf21a564367354ef195b56aa81689e46f10f542498f1817b5f7bef7d0252658">
<div>
<ul class="lcds-section-nav__section-link__active lcds-section-nav__list">
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/risk-evaluation-and-mitigation-strategies-rems-spl-resources">
Risk Evaluation and Mitigation Strategies (REMS) SPL Resources
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/business-entity-identifiers">
Business Entity Identifiers
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/business-operation">
Business Operation
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/business-operation-qualifier">
Business Operation Qualifier
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/code-system-object-identifiers">
Code System Object Identifiers
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/combination-product-types">
Combination Product Types
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/contributing-factor-general">
Contributing Factor - General
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/document-type-including-content-labeling-type">
Document Type including Content of Labeling Type
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/dosage-forms">
Dosage Forms
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/electronic-animal-drug-product-listing-directory">
Electronic Animal Drug Product Listing Directory
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/equivalence-codes">
Equivalence Codes
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/flavor">
Flavor
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/geopolitical-entities-names-and-codes-genc">
Geopolitical Entities, Names, and Codes (GENC)
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/indication-category">
Indication Category
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/intent-use">
Intent of Use
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/lab-test">
Lab Test
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/license-disciplinary-action">
License Disciplinary Action
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/licensed">
Licensed
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/limitation-useissues">
Limitation of Use/Issues
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/marketing-category">
Marketing Category
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/marketing-status">
Marketing Status
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/medical-condition">
Medical Condition
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/ndcnhric-labeler-codes">
NDC/NHRIC Labeler Codes
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/nsde">
NSDE
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/package-type">
Package Type
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/pharmacokinetic-effect">
Pharmacokinetic Effect
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/pharmacologic-class">
Pharmacologic Class
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/positron-emission-tomography-pet-drug-spl">
Positron Emission Tomography (PET) Drug SPL
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/precondition-categories">
Precondition Categories
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/race">
Race
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/rems-approval">
REMS Approval
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/rems-protocol">
REMS Protocol
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/rems-requirements">
REMS Requirements
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/rems-stakeholder">
REMS Stakeholder
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/resources-spl-commercial-software-and-conversion-vendors-and-fda-regulated-company-self-generated">
Resources for SPL Commercial Software and Conversion Vendors and FDA-Regulated Company Self-Generated SPL Software Developers
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/route-administration">
Route of Administration
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/section-headings-loinc">
Section Headings (LOINC)
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/sex">
Sex
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/spl-color">
SPL Color
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/spl-dea-schedule">
SPL DEA Schedule
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/spl-lot-distribution-data-distribution-codes">
SPL Lot Distribution Data - Distribution Codes
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/spl-shape">
SPL Shape
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/spl-standard-training">
SPL Standard Training
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/spl-xforms">
SPL Xforms
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/time-units">
Time Units
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/type-consequence">
Type of Consequence
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/uniis-preferred-substance-names-and-their-identified-synonyms">
UNIIs, Preferred Substance Names, and their Identified Synonyms
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/units-measure">
Units of Measure
</a>
</li>
<li>
<a class="lcds-section-nav__link" href="/industry/structured-product-labeling-resources/units-presentation">
Units of Presentation
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="views-element-container form-group">
<div class="view view-in-this-section-sub view-id-in_this_section_sub view-display-id-block_2 js-view-dom-id-335ed711a47462688e70fc5baa76961c56138f181cbddd1216fba45fbfae0dc0">
</div>
</div>
</li>
</ul>
</nav>
</section>
<section class="block block-ctools block-entity-viewnode clearfix" data-block-plugin-id="entity_view:node" id="block-entityviewcontent-15">
<ol class="lcds-breadcrumb visible-md visible-lg">
<li>
<a href="/">
Home
</a>
</li>
<li>
<a href="/industry">
For Industry
</a>
</li>
<li>
<a href="/industry/fda-data-standards-advisory-board">
FDA Data Standards Advisory Board
</a>
</li>
<li>
<a href="/industry/fda-data-standards-advisory-board/structured-product-labeling-resources">
Structured Product Labeling Resources
</a>
</li>
<li>
<a class="current-link">
Dosage Forms
</a>
</li>
</ol>
<ol class="lcds-breadcrumb visible-sm visible-xs">
<li>
<a href="/industry/fda-data-standards-advisory-board/structured-product-labeling-resources" title="Structured Product Labeling Resources">
Structured Product Labeling Resources
</a>
</li>
</ol>
</section>
<main>
<article class="article main-content container-fluid" id="main-content" role="article">
<header class="row content-header" role="heading">
<section class="block block-ctools block-entity-viewnode clearfix" data-block-plugin-id="entity_view:node" id="block-entityviewcontent-2">
<div class="col-sm-12 col-md-8 col-md-offset-2">
<h1 class="content-title text-center">
Dosage Forms
</h1>
<div class="lcds-toolbar lcds-toolbar--social">
<ul class="lcds-share lcds-share--default">
<li class="lcds-share__item">
<a class="lcds-share__btn lcds-share--default__btn-facebook js-share" href="https://www.facebook.com/sharer/sharer.php?u=https://www.fda.gov%2Findustry%2Fstructured-product-labeling-resources%2Fdosage-forms" id="fb-share" target="_blank">
<span aria-hidden="true" class="fa icon-facebook">
</span>
Share
</a>
</li>
<li class="lcds-share__item">
<a class="lcds-share__btn lcds-share--default__btn-twitter js-share" href="https://twitter.com/intent/tweet/?text=Dosage%20Forms&url=https://www.fda.gov%2Findustry%2Fstructured-product-labeling-resources%2Fdosage-forms" id="twitter-share" target="_blank">
<span aria-hidden="true" class="fa icon-twitter">
</span>
Tweet
</a>
</li>
<li class="lcds-share__item hidden-xs">
<a class="lcds-share__btn lcds-share--default__btn-linkedin js-share" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.fda.gov%2Findustry%2Fstructured-product-labeling-resources%2Fdosage-forms&title=Dosage%20Forms&source=FDA" id="linkedin-share" target="_blank">
<span aria-hidden="true" class="fa icon-linkedin">
</span>
Linkedin
</a>
</li>
<li class="lcds-share__item">
<a class="lcds-share__btn lcds-share--default__btn-mail" href="mailto:?subject=Dosage%20Forms&body=https://www.fda.gov%2Findustry%2Fstructured-product-labeling-resources%2Fdosage-forms">
<span aria-hidden="true" class="fa icon-envelope">
</span>
Email
</a>
</li>
<li class="lcds-share__item hidden-xs">
<a class="lcds-share__btn lcds-share--default__btn-print" href="javascript:window.print();" title="Print this page">
<span aria-hidden="true" class="fa icon-print">
</span>
Print
</a>
</li>
</ul>
<div class="form-group">
</div>
</div>
</div>
</section>
</header>
<div class="col-md-8 col-md-push-2" role="main">
<p>
NCI Thesaurus OID: 2.16.840.1.113883.3.26.1.1
</p>
<p>
NCI concept code for pharmaceutical dosage form: C42636
</p>
<p>
</p>
<table align="center" cellpadding="0" cellspacing="0" style="height: 2683px;" width="95%">
<tbody>
<tr>
<th scope="col" style="height: 13px; text-align: left;" valign="top" width="400">
<strong>
SPL Acceptable Term
</strong>
</th>
<th scope="col" style="height: 13px; text-align: left;" valign="top" width="316">
<strong>
Code
</strong>
</th>
</tr>
<tr>
<td scope="row" style="height: 21px; text-align: left;" valign="top">
AEROSOL
</td>
<td style="height: 21px;" valign="top" width="316">
C42887
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
AEROSOL, FOAM
</td>
<td valign="top" width="316">
C42888
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
AEROSOL, METERED
</td>
<td valign="top" width="316">
C42960
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
AEROSOL, POWDER
</td>
<td valign="top" width="316">
C42971
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
AEROSOL, SPRAY
</td>
<td valign="top" width="316">
C42889
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
BAR, CHEWABLE
</td>
<td valign="top" width="316">
C42892
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
BEAD
</td>
<td valign="top" width="316">
C42890
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CAPSULE
</td>
<td valign="top" width="316">
C25158
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CAPSULE, COATED
</td>
<td valign="top" width="316">
C42895
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CAPSULE, COATED PELLETS
</td>
<td valign="top" width="316">
C42896
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CAPSULE, COATED, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42917
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CAPSULE, DELAYED RELEASE
</td>
<td valign="top" width="316">
C42902
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CAPSULE, DELAYED RELEASE PELLETS
</td>
<td valign="top" width="316">
C42904
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CAPSULE, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42916
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CAPSULE, FILM COATED, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42928
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CAPSULE, GELATIN COATED
</td>
<td valign="top" width="316">
C42936
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CAPSULE, LIQUID FILLED
</td>
<td valign="top" width="316">
C42954
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CELLULAR SHEET
</td>
<td valign="top" width="316">
C100103
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CHEWABLE GEL
</td>
<td valign="top" width="316">
C134876
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CLOTH
</td>
<td valign="top" width="316">
C60884
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CONCENTRATE
</td>
<td valign="top" width="316">
C60891
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CREAM
</td>
<td valign="top" width="316">
C28944
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CREAM, AUGMENTED
</td>
<td valign="top" width="316">
C60897
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
CRYSTAL
</td>
<td valign="top" width="316">
C42901
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
DISC
</td>
<td valign="top" width="316">
C43525
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
DOUCHE
</td>
<td valign="top" width="316">
C42679
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
DRESSING
</td>
<td valign="top" width="316">
C42763
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
DRUG-ELUTING CONTACT LENS
</td>
<td valign="top" width="316">
C185352
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
ELIXIR
</td>
<td valign="top" width="316">
C42912
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
EMULSION
</td>
<td valign="top" width="316">
C42913
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
ENEMA
</td>
<td valign="top" width="316">
C42915
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
EXTRACT
</td>
<td valign="top" width="316">
C42929
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
FIBER, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C60926
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
FILM
</td>
<td valign="top" width="316">
C42932
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
FILM, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42920
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
FILM, SOLUBLE
</td>
<td valign="top" width="316">
C42984
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
FOR SOLUTION
</td>
<td valign="top" width="316">
C60927
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
FOR SUSPENSION
</td>
<td valign="top" width="316">
C60928
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
FOR SUSPENSION, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C60929
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GAS
</td>
<td valign="top" width="316">
C42933
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GEL
</td>
<td valign="top" width="316">
C42934
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GEL, DENTIFRICE
</td>
<td valign="top" width="316">
C42906
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GEL, METERED
</td>
<td valign="top" width="316">
C60930
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GLOBULE
</td>
<td valign="top" width="316">
C42937
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GRANULE
</td>
<td valign="top" width="316">
C42938
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GRANULE, DELAYED RELEASE
</td>
<td valign="top" width="316">
C42903
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GRANULE, EFFERVESCENT
</td>
<td valign="top" width="316">
C42909
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GRANULE, FOR SOLUTION
</td>
<td valign="top" width="316">
C42939
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GRANULE, FOR SUSPENSION
</td>
<td valign="top" width="316">
C42940
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GRANULE, FOR SUSPENSION, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42921
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
GUM, CHEWING
</td>
<td valign="top" width="316">
C42894
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
IMPLANT
</td>
<td valign="top" width="316">
C42942
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INHALANT
</td>
<td valign="top" width="316">
C42944
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTABLE FOAM
</td>
<td valign="top" width="316">
C113106
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTABLE, LIPOSOMAL
</td>
<td valign="top" width="316">
C60931
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION
</td>
<td valign="top" width="316">
C42946
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, EMULSION
</td>
<td valign="top" width="316">
C42914
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, LIPID COMPLEX
</td>
<td valign="top" width="316">
C42950
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, POWDER, FOR SOLUTION
</td>
<td valign="top" width="316">
C42974
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, POWDER, FOR SUSPENSION
</td>
<td valign="top" width="316">
C42976
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, POWDER, FOR SUSPENSION, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42977
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, POWDER, LYOPHILIZED, FOR LIPOSOMAL SUSPENSION
</td>
<td valign="top" width="316">
C42959
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, POWDER, LYOPHILIZED, FOR SOLUTION
</td>
<td valign="top" width="316">
C42957
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, POWDER, LYOPHILIZED, FOR SUSPENSION
</td>
<td valign="top" width="316">
C42958
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, POWDER, LYOPHILIZED, FOR SUSPENSION, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42956
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, SOLUTION
</td>
<td valign="top" width="316">
C42945
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, SOLUTION, CONCENTRATE
</td>
<td valign="top" width="316">
C42899
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, SUSPENSION
</td>
<td valign="top" width="316">
C42995
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, SUSPENSION, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42926
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, SUSPENSION, LIPOSOMAL
</td>
<td valign="top" width="316">
C42951
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INJECTION, SUSPENSION, SONICATED
</td>
<td valign="top" width="316">
C42988
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INSERT
</td>
<td valign="top" width="316">
C60933
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INSERT, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42922
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
INTRAUTERINE DEVICE
</td>
<td valign="top" width="316">
C47915
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
IRRIGANT
</td>
<td valign="top" width="316">
C42947
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
JELLY
</td>
<td valign="top" width="316">
C42948
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
KIT
</td>
<td valign="top" width="316">
C47916
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
LINIMENT
</td>
<td valign="top" width="316">
C42949
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
LIPSTICK
</td>
<td valign="top" width="316">
C42952
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
LIQUID
</td>
<td valign="top" width="316">
C42953
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
LIQUID, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C60934
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
LOTION
</td>
<td valign="top" width="316">
C29167
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
LOTION, AUGMENTED
</td>
<td valign="top" width="316">
C60957
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
LOTION/SHAMPOO
</td>
<td valign="top" width="316">
C60958
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
LOZENGE
</td>
<td valign="top" width="316">
C42955
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
MOUTHWASH
</td>
<td valign="top" width="316">
C29269
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
NOT APPLICABLE
</td>
<td valign="top" width="316">
C48624
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
OIL
</td>
<td valign="top" width="316">
C42965
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
OINTMENT
</td>
<td valign="top" width="316">
C42966
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
OINTMENT, AUGMENTED
</td>
<td valign="top" width="316">
C60984
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PASTE
</td>
<td valign="top" width="316">
C42967
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PASTE, DENTIFRICE
</td>
<td valign="top" width="316">
C42907
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PASTILLE
</td>
<td valign="top" width="316">
C60985
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PATCH
</td>
<td valign="top" width="316">
C42968
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PATCH, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42923
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PATCH, EXTENDED RELEASE, ELECTRICALLY CONTROLLED
</td>
<td valign="top" width="316">
C42911
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PELLET
</td>
<td valign="top" width="316">
C42969
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PELLET, IMPLANTABLE
</td>
<td valign="top" width="316">
C42943
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PELLETS, COATED, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42918
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PILL
</td>
<td valign="top" width="316">
C25394
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
PLASTER
</td>
<td valign="top" width="316">
C42970
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
POULTICE
</td>
<td valign="top" width="316">
C47913
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
POWDER
</td>
<td valign="top" width="316">
C42972
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
POWDER, DENTIFRICE
</td>
<td valign="top" width="316">
C42908
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
POWDER, FOR SOLUTION
</td>
<td valign="top" width="316">
C42973
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
POWDER, FOR SUSPENSION
</td>
<td valign="top" width="316">
C42975
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
POWDER, METERED
</td>
<td valign="top" width="316">
C42961
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
RING
</td>
<td valign="top" width="316">
C60988
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
RINSE
</td>
<td valign="top" width="316">
C42979
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SALVE
</td>
<td valign="top" width="316">
C42980
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SHAMPOO
</td>
<td valign="top" width="316">
C42981
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SHAMPOO, SUSPENSION
</td>
<td valign="top" width="316">
C42982
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SOAP
</td>
<td valign="top" width="316">
C42983
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SOLUTION
</td>
<td valign="top" width="316">
C42986
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SOLUTION, CONCENTRATE
</td>
<td valign="top" width="316">
C42898
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SOLUTION, FOR SLUSH
</td>
<td valign="top" width="316">
C42987
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SOLUTION, GEL FORMING / DROPS
</td>
<td valign="top" width="316">
C60994
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SOLUTION, GEL FORMING, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42935
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SOLUTION/ DROPS
</td>
<td valign="top" width="316">
C60992
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SPONGE
</td>
<td valign="top" width="316">
C47912
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SPRAY
</td>
<td valign="top" width="316">
C42989
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SPRAY, METERED
</td>
<td valign="top" width="316">
C42962
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SPRAY, SUSPENSION
</td>
<td valign="top" width="316">
C42990
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
STICK
</td>
<td valign="top" width="316">
C42991
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
STRIP
</td>
<td valign="top" width="316">
C47914
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SUPPOSITORY
</td>
<td valign="top" width="316">
C42993
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SUPPOSITORY, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42924
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SUSPENSION
</td>
<td valign="top" width="316">
C42994
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SUSPENSION, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42925
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SUSPENSION/ DROPS
</td>
<td valign="top" width="316">
C60995
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SWAB
</td>
<td valign="top" width="316">
C47898
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SYRUP
</td>
<td valign="top" width="316">
C42996
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
SYSTEM
</td>
<td valign="top" width="316">
C17423
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET
</td>
<td valign="top" width="316">
C42998
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, CHEWABLE
</td>
<td valign="top" width="316">
C42893
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, CHEWABLE, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C124794
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, COATED
</td>
<td valign="top" width="316">
C42897
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, COATED PARTICLES
</td>
<td valign="top" width="316">
C60997
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, DELAYED RELEASE
</td>
<td valign="top" width="316">
C42905
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, DELAYED RELEASE PARTICLES
</td>
<td valign="top" width="316">
C42997
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, EFFERVESCENT
</td>
<td valign="top" width="316">
C42910
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42927
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, FILM COATED
</td>
<td valign="top" width="316">
C42931
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, FILM COATED, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42930
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, FOR SOLUTION
</td>
<td valign="top" width="316">
C61004
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, FOR SUSPENSION
</td>
<td valign="top" width="316">
C61005
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, MULTILAYER
</td>
<td valign="top" width="316">
C42964
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, MULTILAYER, EXTENDED RELEASE
</td>
<td valign="top" width="316">
C42963
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, ORALLY DISINTEGRATING
</td>
<td valign="top" width="316">
C42999
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, ORALLY DISINTEGRATING, DELAYED RELEASE
</td>
<td valign="top" width="316">
C61006
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, SOLUBLE
</td>
<td valign="top" width="316">
C42985
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET, SUGAR COATED
</td>
<td valign="top" width="316">
C42992
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TABLET WITH SENSOR
</td>
<td valign="top" width="316">
C147579
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TAMPON
</td>
<td valign="top" width="316">
C47892
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TAPE
</td>
<td valign="top" width="316">
C47897
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TINCTURE
</td>
<td valign="top" width="316">
C43000
</td>
</tr>
<tr>
<td scope="row" style="text-align: left;" valign="top">
TROCHE
</td>
<td valign="top" width="316">
C43001
</td>
</tr>
<tr>
<td scope="row" style="height: 13px; text-align: left;" valign="top">
WAFER
</td>
<td style="height: 13px;" valign="top" width="316">
C43003
</td>
</tr>
</tbody>
</table>
<p>
</p>
</div>
<aside class="col-md-2 col-md-push-2" role="complementary">
<section class="block block-ctools block-entity-viewnode clearfix" data-block-plugin-id="entity_view:node" id="block-entityviewcontent-4">
<div about="/industry/structured-product-labeling-resources/dosage-forms" class="region region-" role="article">
<aside class="lcds-card lcds-card--border-top" role="menu">
<ul class="lcds-description-list">
<div class="node-current-date">
<li class="lcds-description-list__item">
<div>
<h2 class="lcds-description-list__item-heading">
Content current as of:
</h2>
<p class="lcds-description-list__item-text">
<time datetime="2022-02-03T10:05:00Z">
02/03/2022
</time>
</p>
</div>
</li>
</div>
<li class="lcds-description-list__item">
<div>
</div>
</li>
</ul>
</aside>
</div>
</section>
</aside>
<aside class="col-md-2 col-md-pull-10" role="complementary">
<section class="block block-ctools block-entity-viewnode clearfix" data-block-plugin-id="entity_view:node" id="block-entityviewcontent-3">
<div about="/industry/structured-product-labeling-resources/dosage-forms" class="region region-" role="article">
<nav class="lcds-card lcds-section-nav lcds-section-nav--side hidden-xs hidden-sm" id="section-nav">
<ul class="lcds-section-nav__list lcds-section-nav--side__list">
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link lcds-section-nav__parent-link lcds-section-nav--side__parent-link" href="/industry/fda-data-standards-advisory-board/structured-product-labeling-resources">
Structured Product Labeling Resources
</a>
<div class="views-element-container form-group">
<div class="view view-in-this-section view-id-in_this_section view-display-id-block_4 js-view-dom-id-f4e45e22b3b3ec96fee2374dd154bf5fb59f4016cdd6b6e9afac78399d5bda28">
<div class="item-list">
<ul class="lcds-section-nav__active lcds-section-nav__list lcds-section-nav--side__list">
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/risk-evaluation-and-mitigation-strategies-rems-spl-resources">
REMS SPL Resources
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/business-entity-identifiers">
Business Entity Identifiers
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/business-operation">
Business Operation
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/business-operation-qualifier">
Business Operation Qualifier
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/code-system-object-identifiers">
Code System Object Identifiers
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/combination-product-types">
Combination Product Types
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/contributing-factor-general">
Contributing Factor - General
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/document-type-including-content-labeling-type">
Document Type including Content of Labeling Type
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/dosage-forms">
Dosage Forms
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/electronic-animal-drug-product-listing-directory">
Electronic Animal Drug Product Listing Directory
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/equivalence-codes">
Equivalence Codes
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/flavor">
Flavor
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/geopolitical-entities-names-and-codes-genc">
Geopolitical Entities, Names, and Codes (GENC)
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/indication-category">
Indication Category
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/intent-use">
Intent of Use
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/lab-test">
Lab Test
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/license-disciplinary-action">
License Disciplinary Action
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/licensed">
Licensed
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/limitation-useissues">
Limitation of Use/Issues
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/marketing-category">
Marketing Category
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/marketing-status">
Marketing Status
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/medical-condition">
Medical Condition
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/ndcnhric-labeler-codes">
NDC/NHRIC Labeler Codes
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/nsde">
NSDE
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/package-type">
Package Type
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/pharmacokinetic-effect">
Pharmacokinetic Effect
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/pharmacologic-class">
Pharmacologic Class
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/positron-emission-tomography-pet-drug-spl">
Positron Emission Tomography (PET) Drug SPL
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/precondition-categories">
Precondition Categories
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/race">
Race
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/rems-approval">
REMS Approval
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/rems-protocol">
REMS Protocol
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/rems-requirements">
REMS Requirements
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/rems-stakeholder">
REMS Stakeholder
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/resources-spl-commercial-software-and-conversion-vendors-and-fda-regulated-company-self-generated">
Resources for SPL Commercial Software and Conversion Vendors and FDA-Regulated Company Self-Generated SPL Software Developers
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/route-administration">
Route of Administration
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/section-headings-loinc">
Section Headings (LOINC)
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/sex">
Sex
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/spl-color">
SPL Color
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/spl-dea-schedule">
SPL DEA Schedule
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/spl-lot-distribution-data-distribution-codes">
SPL Lot Distribution Data - Distribution Codes
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/spl-shape">
SPL Shape
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/spl-standard-training">
SPL Standard Training
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/spl-xforms">
SPL Xforms
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/time-units">
Time Units
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/type-consequence">
Type of Consequence
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/uniis-preferred-substance-names-and-their-identified-synonyms">
UNIIs, Preferred Substance Names, and their Identified Synonyms
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/units-measure">
Units of Measure
</a>
</li>
<li>
<a class="lcds-section-nav__link lcds-section-nav--side__link" href="/industry/structured-product-labeling-resources/units-presentation">
Units of Presentation
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="views-element-container form-group">
<div class="view view-in-this-section-sub view-id-in_this_section_sub view-display-id-block_1 js-view-dom-id-d419d9d275f7ccb0e40f34448099063062b85dbbc42f13f719f9b4c058d3b17a">
</div>
</div>
</li>
</ul>
</nav>
</div>
</section>
</aside>
</article>
</main>
</div>
</div>
<div class="region region-subscribe">
<section class="block block-ctools block-entity-viewnode clearfix" data-block-plugin-id="entity_view:node" id="block-entityviewcontent-5">
</section>
</div>
<footer class="lcds-footer container-fluid">
<div class="row lcds-footer__primary">
<h2 class="sr-only" id="footer-heading">
Footer Links
</h2>
<nav class="text-center">
<div class="col-sm-4">
<ul class="nav">
<li>
<a href="/about-fda/about-website/fdagov-archive">
FDA Archive
</a>
</li>
<li>
<a href="/about-fda">
About FDA
</a>
</li>
<li>
<a href="/about-fda/about-website/internet-accessibility">
Accessibility
</a>
</li>
</ul>
</div>
<div class="col-sm-4">
<ul class="nav">
<li>
<a href="/about-fda/visitor-information">
Visitor Information
</a>
</li>
<li>
<a href="/about-fda/about-website/website-policies">
Website Policies / Privacy
</a>
</li>
<li>
<a href="/about-fda/jobs-and-training-fda/no-fear-act">
No FEAR Act
</a>
</li>
<li>
<a href="https://www.hhs.gov/vulnerability-disclosure-policy/index.html">
Vulnerability Disclosure Policy
</a>
</li>
</ul>
</div>
<div class="col-sm-4">
<ul class="nav">
<li>
<a href="/regulatory-information/freedom-information" title="Freedom of Information Act">
FOIA
</a>
</li>
<li>
<a href="https://www.hhs.gov/" target="_blank" title="Health and Human Services">
HHS.gov
</a>
</li>
<li>
<a href="https://www.usa.gov/" target="_blank">
USA.gov
</a>
</li>
</ul>
</div>
</nav>
</div>
<div class="row lcds-footer__secondary">
<div class="col-sm-12 col-md-6 col-lg-4 lcds-footer__social-links">
<a class="btn btn-default btn-md" href="/about-fda/contact-fda">
Contact FDA
</a>
<a class="no-disclaimer" href="https://www.facebook.com/FDA" title="Follow FDA on Facebook">
<span aria-hidden="true" class="fa fa-facebook fa-2x">
<span class="sr-only">
Follow FDA on Facebook
</span>
</span>
</a>
<a class="no-disclaimer" href="https://www.twitter.com/US_FDA" title="Follow FDA on Twitter">
<span aria-hidden="true" class="fa fa-twitter fa-2x">
<span class="sr-only">
Follow FDA on Twitter
</span>
</span>
</a>
<a class="no-disclaimer" href="https://instagram.com/FDA" title="Follow FDA on Instagram">
<span aria-hidden="true" class="fa fa-instagram fa-2x">
<span class="sr-only">
Follow FDA on Instagram
</span>
</span>
</a>
<br class="visible-xs-inline">
<a class="no-disclaimer" href="https://www.linkedin.com/company/fda/" title="Follow FDA on LinkedIn">
<span aria-hidden="true" class="fa fa-linkedin fa-2x">
<span class="sr-only">
Follow FDA on LinkedIn
</span>
</span>
</a>
<a class="no-disclaimer" href="https://youtube.com/@US_FDA" title="View FDA videos on YouTube">
<span aria-hidden="true" class="fa fa-youtube fa-2x">
<span class="sr-only">
View FDA videos on YouTube
</span>
</span>
</a>
<a href="/about-fda/contact-fda/subscribe-podcasts-and-news-feeds" title="Subscribe to FDA RSS feeds">
<span aria-hidden="true" class="fa fa-rss fa-2x">
<span class="sr-only">
Subscribe to FDA RSS feeds
</span>
</span>
</a>
</br>
</div>
<a href="/" title="FDA Homepage">
<div class="visible-lg-block col-lg-4 text-center lcds-footer__logo">
<span class="sr-only">
FDA Homepage
</span>
</div>
</a>
<div class="col-sm-12 col-md-6 col-lg-4 text-center lcds-footer__contact-number">
<span aria-hidden="true" class="fa fa-phone">
</span>
<span class="sr-only">
Contact Number
</span>
1-888-INFO-FDA (1-888-463-6332)
</div>
</div>
<script type="text/javascript">
(function(){var g=function(e,h,f,g){
this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g+ "&t=" + (new Date()).getTime();document.body&&document.body.appendChild(a)}};
this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
try{(new g(100,"r","QSI_S_ZN_6FpQ8uiCQiPh6SN","https://zn6fpq8uicqiph6sn-fdawebcx.gov1.siteintercept.qualtrics.com/SIE/?Q_ZID=ZN_6FpQ8uiCQiPh6SN")).start()}catch(i){}})();
</script>
<div id="ZN_6FpQ8uiCQiPh6SN">
<!--DO NOT REMOVE-CONTENTS PLACED HERE-->
</div>
<!--END WEBSITE FEEDBACK SNIPPET-->
</footer>
<a class="btn btn-primary btn-top" href="" id="btn-top">
<span class="sr-only">
Back to
</span>
Top
</a>
</div>
<script data-drupal-selector="drupal-settings-json" type="application/json">
{"path":{"baseUrl":"\/","scriptPath":null,"pathPrefix":"","currentPath":"node\/358928","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"jquery":{"ui":{"datepicker":{"isRTL":false,"firstDay":0}}},"fda_ckeditor_enhancements":{"basePath":"modules\/custom\/fda_ckeditor_enhancements"},"google_analytics":{"account":"UA-22737364-1","trackOutbound":true,"trackMailto":true,"trackDownload":true,"trackDownloadExtensions":"7z|aac|arc|arj|asf|asx|avi|bin|csv|doc(x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thmx|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls(x|m|b)?|xlt(x|m)|xlam|xml|z|zip"},"bootstrap":{"forms_has_error_value_toggle":1,"modal_animation":1,"modal_backdrop":"true","modal_focus_input":1,"modal_keyboard":1,"modal_select_text":1,"modal_show":1,"modal_size":"","popover_enabled":1,"popover_animation":1,"popover_auto_close":1,"popover_container":"body","popover_content":"","popover_delay":"0","popover_html":0,"popover_placement":"right","popover_selector":"","popover_title":"","popover_trigger":"click"},"ajax":[],"user":{"uid":0,"permissionsHash":"3aef67b4ac7d861d8624bf1f7ab2bc9cfc56d3c25b7d709dc15466dfa996dfb0"}}
</script>
<script src="/files/js/js_Dci7uLWeq40FWcpIjiQjBlWDUvAHJXOZvUm0MMnj0C8.js">
</script>
</body>
</html>
The following step was optional, but might be useful later, the web content could be saved as a file as shown below.
# Create a file by passing the request content into write () method
# and save the dosage form table as a file in binary format
with open("FDA_dosage_form", "wb") as file:
file.write(data.content)
Transform web-scraped data into dataframe
Using Pandas dataframe library
Pandas.append()
The original pandas.append() method was going to be deprecated in future versions of Pandas. This old method was shown as below:
```{python}
# Create an empty dataframe with columns named "Dosage_form" & "Code"
= pd.DataFrame(columns = ["Dosage_form", "Code"])
dosage_form
# Create a loop to find all <tr> tags in the soup object (scraped html content)
for row in soup.find_all("tr"):
# Set the columns to contain contents under <td> tags by searching all rows
= row.find_all("td")
col # if columns are not an empty list,
# add the texts under columns in specified orders
if (col != []):
= col[0].text
dosage = col[1].text
code
# Append each text item into the dosage_form dataframe
= dosage_form.append({"Dosage_form":dosage, "Code":code}, ignore_index = True)
dosage_form
# Show dataframe
dosage_form```
This method might still work currently, however, the newer and recommended methods would be to use the pandas.concat() method as shown below.
Pandas.concat()
First example:
# Create an empty dictionary
dict = []
# Create a loop to iterate through html tags from the soup (scraped html content)
# find all html tags that began with <tr>
for row in soup.find_all("tr"):
# each column would hold the items under <td> tags
= row.find_all("td")
col if (col != []):
# dosage form in column 1
= col[0].text
dosage # code in column 2
= col[1].text
code # Append each dosage form & code into the dictionary
dict.append({"DosageForm": dosage, "dosage_form": code})
# Check if the loop was iterating through the html tags
# and that it was appending each dosage form & code into the dictionary
# Uncomment line below
#print(dict)
# Create an empty dataframe with the column names wanted
= pd.DataFrame(columns = ["DosageForm", "dosage_form"])
dosage_form
# Concatenate the dosage_form dataframe with the dataframe converted from dict
= pd.concat([dosage_form, pd.DataFrame.from_dict(dict)])
df_new
# Print the combined dataframe df_new
df_new
DosageForm | dosage_form | |
---|---|---|
0 | AEROSOL | C42887 |
1 | AEROSOL, FOAM | C42888 |
2 | AEROSOL, METERED | C42960 |
3 | AEROSOL, POWDER | C42971 |
4 | AEROSOL, SPRAY | C42889 |
... | ... | ... |
153 | TAMPON | C47892 |
154 | TAPE | C47897 |
155 | TINCTURE | C43000 |
156 | TROCHE | C43001 |
157 | WAFER | C43003 |
158 rows × 2 columns
Pandas.from_dict()
Second example by using pd.from_dict() method, which might have less lines of code:
# Create an empty dictionary
dict = []
# Create a loop to iterate through html tags from the soup (scraped html content)
# find all html tags that began with <tr>
for row in soup.find_all("tr"):
# each column would hold the items under <td> tags
= row.find_all("td")
col if (col != []):
# dosage form in column 1
= col[0].text
dosage # code in column 2
= col[1].text
code # Append each dosage form & code into the dict
dict.append({"DosageForm": dosage, "dosage_form": code})
# Check if the loop was working to iterate through the html tags
# and that it was appending each dosage form & code into the dictionary
# Uncomment line below
#print(dict)
# Convert the dictionary into a dataframe
= pd.DataFrame.from_dict(dict)
df_new
# Print the dataframe df_new
df_new
DosageForm | dosage_form | |
---|---|---|
0 | AEROSOL | C42887 |
1 | AEROSOL, FOAM | C42888 |
2 | AEROSOL, METERED | C42960 |
3 | AEROSOL, POWDER | C42971 |
4 | AEROSOL, SPRAY | C42889 |
... | ... | ... |
153 | TAMPON | C47892 |
154 | TAPE | C47897 |
155 | TINCTURE | C43000 |
156 | TROCHE | C43001 |
157 | WAFER | C43003 |
158 rows × 2 columns
Using Polars dataframe library
Polars dataframe library also had a from_dict() method that could convert dictionary into a dataframe as shown below:
# Create an empty dictionary
dict = []
# Create a loop to iterate through html tags from the soup (scraped html content)
# find all html tags that began with <tr>
for row in soup.find_all("tr"):
# each column would hold the items under <td> tags
= row.find_all("td")
col if (col != []):
# dosage form in column 1
= col[0].text
dosage # code in column 2
= col[1].text
code # Append each dosage form & code into the dict
dict.append({"DosageForm": dosage, "dosage_form": code})
# Check if the loop was iterating through the html tags
# and that it was also appending each dosage form & code into the dictionary
# Uncomment line below
#print(dict)
# Convert dictionary to dataframe
= pl.from_dicts(dict)
new_df new_df
DosageForm | dosage_form |
---|---|
str | str |
"AEROSOL" | "C42887" |
"AEROSOL, FOAM" | "C42888" |
"AEROSOL, METER... | "C42960" |
"AEROSOL, POWDE... | "C42971" |
"AEROSOL, SPRAY... | "C42889" |
"BAR, CHEWABLE" | "C42892" |
"BEAD" | "C42890" |
"CAPSULE" | "C25158" |
"CAPSULE, COATE... | "C42895" |
"CAPSULE, COATE... | "C42896" |
"CAPSULE, COATE... | "C42917" |
"CAPSULE, DELAY... | "C42902" |
... | ... |
"TABLET, MULTIL... | "C42964" |
"TABLET, MULTIL... | "C42963" |
"TABLET, ORALLY... | "C42999" |
"TABLET, ORALLY... | "C61006" |
"TABLET, SOLUBL... | "C42985" |
"TABLET, SUGAR ... | "C42992" |
"TABLET WITH SE... | "C147579" |
"TAMPON" | "C47892" |
"TAPE" | "C47897" |
"TINCTURE" | "C43000" |
"TROCHE" | "C43001" |
"WAFER" | "C43003" |
Preparation of dataframe for data visualisation
Once we have the scraped dataframe ready, we could combine it with our original dataframe from the .csv file (the idea was basically doing dataframe join). Then the dosage form code column could be removed to make it easier to read.
# Join the two dataframes together
= df_med.join(new_df, on = "dosage_form")
df_final # Drop the column dosage_form which had code of each dosage form
= df_final.drop("dosage_form")
df_final df_final
splshape_text | splcolor_text | spl_strength | spl_inactive_ing | DosageForm |
---|---|---|---|---|
str | str | str | str | str |
"CAPSULE" | "PINK" | "TEMAZEPAM 15 m... | "SILICON DIOXID... | "CAPSULE" |
"ROUND" | "ORANGE" | "IBUPROFEN 200 ... | "SILICON DIOXID... | "TABLET, FILM C... |
"PENTAGON (5 SI... | "GREEN" | "DEXAMETHASONE ... | "ANHYDROUS LACT... | "TABLET" |
"ROUND" | "WHITE" | "Nickel Sulfate... | null | "TABLET" |
"ROUND" | "WHITE" | "CLONAZEPAM 0.2... | "SORBITOL;ASPAR... | "TABLET, ORALLY... |
"ROUND" | "WHITE" | "SILDENAFIL CIT... | "ANHYDROUS DIBA... | "TABLET, FILM C... |
"OVAL" | "YELLOW" | "RISPERIDONE 3 ... | "LACTOSE MONOHY... | "TABLET, FILM C... |
"CAPSULE" | "BLUE" | "IBUPROFEN 200 ... | "FD&C BLUE NO. ... | "CAPSULE, LIQUI... |
"ROUND" | "WHITE" | "Iloperidone 12... | "silicon dioxid... | "TABLET" |
"CAPSULE" | "YELLOW;WHITE" | "FENOPROFEN CAL... | "CROSPOVIDONE;M... | "CAPSULE" |
"ROUND" | "YELLOW" | "BUTALBITAL 50 ... | "STARCH, CORN;C... | "TABLET" |
"ROUND" | "WHITE" | "ESTRADIOL 0.5 ... | "COPOVIDONE K25... | "TABLET" |
... | ... | ... | ... | ... |
"ROUND" | "WHITE" | "MEMANTINE HYDR... | "SILICON DIOXID... | "TABLET" |
"CAPSULE" | "ORANGE" | "ACETAMINOPHEN ... | "BUTYLATED HYDR... | "CAPSULE, LIQUI... |
"ROUND" | "WHITE" | "LAMOTRIGINE 25... | "MAGNESIUM CARB... | "TABLET, CHEWAB... |
"OVAL" | "BLUE" | "ACETAMINOPHEN ... | "ACESULFAME POT... | "TABLET, COATED... |
"OVAL" | "WHITE" | "AZITHROMYCIN D... | "CROSCARMELLOSE... | "TABLET, FILM C... |
"OVAL" | "BLUE" | "IBUPROFEN 200 ... | "FD&C BLUE NO. ... | "CAPSULE, LIQUI... |
"OVAL" | "WHITE" | "CETIRIZINE HYD... | "STARCH, CORN;H... | "TABLET" |
"OVAL" | "BROWN" | "OMEPRAZOLE 20 ... | "CARNAUBA WAX;F... | "TABLET, DELAYE... |
"ROUND" | "PINK;ORANGE;YE... | "CALCIUM CARBON... | "CITRIC ACID MO... | "TABLET, CHEWAB... |
"OVAL" | "GREEN" | "ACETAMINOPHEN ... | "STARCH, CORN;D... | "TABLET, FILM C... |
"CAPSULE" | "BLUE" | "Amlodipine bes... | "Cellulose, mic... | "CAPSULE" |
"ROUND" | "ORANGE" | "DARIFENACIN 15... | "ANHYDROUS DIBA... | "TABLET, EXTEND... |
Here, we could save the intended dataframe for data visualisation as a .csv file, so that further data wrangling and mining could be done later for part 2. This also avoided making request calls to the website again and again by extracting the scraped web information as a stand-alone file which could be imported when needed later on.
# Save the inital cleaned dataframe as .csv file
# for use in a new .ipynb file with Rust kernel
"pills.csv", sep = ",") df_final.write_csv(