Namen: Zvezek (Notebook) je namenjen seznanjanju študentov z uporabo Jupytra za vnos podatkov iz spleta in njihovo predstavitvijo. To vključuje predvsem osnovni prikaz uporabe modulov Beautifulsoup in Pandas.
Zvezek se nanaša na:
Ta zvezek je v bistvu dodatek k zvezku Impedančna spektroskopija, v katerem smo prikazali uporabo impedančne spektroskopije za analizo kemijskih procesov in bioloških sistemov.
Beautifulsoup in Pandas sta dve knjižnici (modula), ki omogočata dodatno funkcionalnost uporabe Pythona. S pomočjo Beautifulsoup lahko razčlenimo (ang. parsing) določeno datoteko in iz nje izluščimo kar nas zanima. Recimo, pri dielektrični spektroskopiji smo uporabili podatke iz tabele na strani http://niremf.ifac.cnr.it/docs/DIELECTRIC/AppendixC.html. Podatke za en primer (za model dielektričnih lastnosti krvi) smo "na roko" prepisali v spremenljivke v Jupytru. Z nekaj ukaznimi vrsticamo to lahko naredimo programsko, pa ne le za eno samo snov pač pa povlečemo celotno tabelo in iz nje izvlečemo podatke. Beautifulsoup deluje kot razčlenjevalec, za oblikovanje v uporabno tabelo in delo s tabelo pa uporabimo še modul Pandas.
V podpoglavju 1.1 najprej prikažemo "klasičen" način obravnave, kjer parametre za model pridobimo iz tabele na spletni strani, kasneje pa to naredimo programsko.
Cole-Cole model ni primeren le za modeliranje dielektričnih lastnosti "preprostih" dielektrikov, pač pa v razširjeni obliki zelo dobro modelira tudi dielektrične lastnosti bioloških tkiv. Trenutno, v bistvu že kar nekaj časa, je v veljavi več-parametrski model, ki sta ga predlagala Gabriel & Gabriel () in temelji na uporabi več osnovnih Cole-Cole enačb. S tem omogoči, da se modelira relaksacijske mehanizme v bioloških sistemih, ki nastopajo pri več različnih frekvencah. Model, ki sta ga uporabila
$$\underline{\epsilon} = \epsilon _{\infty} + \sum_{n=1}^{4} \frac{\Delta \epsilon_n}{1+(j\omega\tau _n)^{1-\alpha _n}} + \frac{\gamma }{j \omega \epsilon _0}$$.
Osnovni izris grafa prikazuje spodnja celica.
## več parametrski Cole-Cole model
import matplotlib.pyplot as plt
import numpy as np
ef=4.000
del1=56
tau1=8.377e-12
alf1=.1
del2=5200
tau2=132.629e-9
alf2=.1
sig=.7
del3=0.7
tau3=159.155
alf3=0.2
del4=0
tau4=15e-3
alf4=0
e0=8.854e-12
eksponent=np.linspace(1,12,100) # izdelamo 10 točk od 0 do 2000, linearno
freq=10**(eksponent)
omega=2*np.pi*freq
eps=ef+del1/(1+(1j*omega*tau1)**(1-alf1))+del2/(1+(1j*omega*tau2)**(1-alf2))
eps=eps+del3/(1+(1j*omega*tau3)**(1-alf4))+del4/(1+(1j*omega*tau4)**(1-alf4))+sig/(1j*omega*e0)
sigma=1j*eps*omega*e0
plt.xlabel('Frekvenca (Hz)')
plt.ylabel('Eps in Gama / ')
plt.loglog(freq,(eps).real, color='b',linewidth=3,label='eps.real')
plt.loglog(freq,sigma.real, color='r',linewidth=3,label='gama.real')
plt.loglog(freq,(sigma).imag, color='r',linestyle=':',label='gama.imag')
plt.grid(True,which="both")
plt.ylim(.1,1e4)
plt.legend() # klikni puščico za razširitev
<matplotlib.legend.Legend at 0x7fb9709faac8>
V naslednjih vrsticah bomo povlekli podatke za dielektrični model iz html tabele na strani http://niremf.ifac.cnr.it/docs/DIELECTRIC/AppendixC.html. V ta namen bomo uporabili modul requests, s pomočjo katerega bomo prenesli vsebino datoteke iz spleta v spremenljivko res. Nato bomo uporabili modul BeautifulSoup, s pomočjo katerega bomo analizirali vsebino datoteke (z razčlenjevalnikom (parserjem) xlml.
Če modul Beautifulsoup ni nameščen na računalniku, ga je potrebno predhodno namestiti. Lahko tudi v ukazni vrstici Jupytra z ukazom !pip install bs4. Enako je potrebno narediti tudi za pandas in tudi za lxml.
import requests
from bs4 import BeautifulSoup
res = requests.get("http://niremf.ifac.cnr.it/docs/DIELECTRIC/AppendixC.html") # potegne file iz spleta
soup = BeautifulSoup(res.content,'lxml') # sparsa vsebino z lxml
table2 = soup.find_all('table') # poiščemo tabelo
table2[0] # izpišemo tabelo, da vidimo, če je prava
<table border="2" bordercolor="#777777" color="#000000" width="100%"> <tr> <td width="84">Tissue Type \ Parameter </td> <td width="30">ef </td> <td width="30">del1</td> <td width="30">tau1 (ps) </td> <td width="30">alf1 </td> <td width="30">del2</td> <td width="30">tau2 (ns)</td> <td width="30">alf2 </td> <td width="30">sig</td> <td width="30">del3</td> <td width="30">tau3 (us) </td> <td width="30">alf3</td> <td width="30">del4</td> <td width="30">tau4 (ms) </td> <td width="30">alf4</td> </tr> <tr> <td width="84"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> </tr> <tr> <td width="84"><font color="#000000">Aorta</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">40.00 </font></td> <td width="30"><font color="#000000">8.842 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">50 </font></td> <td width="30"><font color="#000000">3.183 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.250 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">1.00E+7 </font></td> <td width="30"><font color="#000000">1.592 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Bladder</font></td> <td width="30"><font color="#000000">2.500 </font></td> <td width="30"><font color="#000000">16.00 </font></td> <td width="30"><font color="#000000">8.842 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">400 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">1.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Blood</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">56.00 </font></td> <td width="30"><font color="#000000">8.377 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">5200 </font></td> <td width="30"><font color="#000000">132.629 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.700 </font></td> <td width="30"><font color="#000000">0.00E+0 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">0.00E+0 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Bone (Cancellous)</font> </td> <td width="30"><font color="#000000">2.500 </font></td> <td width="30"><font color="#000000">18.00 </font></td> <td width="30"><font color="#000000">13.263 </font></td> <td width="30"><font color="#000000">0.220 </font></td> <td width="30"><font color="#000000">300 </font></td> <td width="30"><font color="#000000">79.577 </font></td> <td width="30"><font color="#000000">0.250 </font></td> <td width="30"><font color="#000000">0.070 </font></td> <td width="30"><font color="#000000">2.00E+4 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">2.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Bone (Cortical)</font> </td> <td width="30"><font color="#000000">2.500 </font></td> <td width="30"><font color="#000000">10.00 </font></td> <td width="30"><font color="#000000">13.263 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">180 </font></td> <td width="30"><font color="#000000">79.577 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">0.020 </font></td> <td width="30"><font color="#000000">5.00E+3 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> </tr> <tr> <td width="84"><font color="#000000">Bone Marrow (Infiltrated)</font> </td> <td width="30"><font color="#000000">2.500 </font></td> <td width="30"><font color="#000000">9.00 </font></td> <td width="30"><font color="#000000">14.469 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">80 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">1.00E+4 </font></td> <td width="30"><font color="#000000">1591.549 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">2.00E+6 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.100 </font></td> </tr> <tr> <td width="84"><font color="#000000">Bone Marrow (Not Infiltrated)</font> </td> <td width="30"><font color="#000000">2.500 </font></td> <td width="30"><font color="#000000">3.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">25 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.001 </font></td> <td width="30"><font color="#000000">5.00E+3 </font></td> <td width="30"><font color="#000000">1591.549 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">2.00E+6 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.100 </font></td> </tr> <tr> <td width="84"><font color="#000000">Brain (Grey Matter)</font> </td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">45.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">400 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.150 </font></td> <td width="30"><font color="#000000">0.020 </font></td> <td width="30"><font color="#000000">2.00E+5 </font></td> <td width="30"><font color="#000000">106.103 </font></td> <td width="30"><font color="#000000">0.220 </font></td> <td width="30"><font color="#000000">4.50E+7 </font></td> <td width="30"><font color="#000000">5.305 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Brain (White Matter)</font> </td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">32.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">100 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.020 </font></td> <td width="30"><font color="#000000">4.00E+4 </font></td> <td width="30"><font color="#000000">53.052 </font></td> <td width="30"><font color="#000000">0.300 </font></td> <td width="30"><font color="#000000">3.50E+7 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.020 </font></td> </tr> <tr> <td width="84"><font color="#000000">Breast fat</font></td> <td width="30"><font color="#000000">2.500 </font></td> <td width="30"><font color="#000000">3.00 </font></td> <td width="30"><font color="#000000">17.680 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">15 </font></td> <td width="30"><font color="#000000">63.660 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.010 </font></td> <td width="30"><font color="#000000">5.00E+4 </font></td> <td width="30"><font color="#000000">454.700 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">2.00E+7 </font></td> <td width="30"><font color="#000000">13.260 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> </tr> <tr> <td width="84"><font color="#000000">Cartilage</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">38.00 </font></td> <td width="30"><font color="#000000">13.263 </font></td> <td width="30"><font color="#000000">0.150 </font></td> <td width="30"><font color="#000000">2500 </font></td> <td width="30"><font color="#000000">144.686 </font></td> <td width="30"><font color="#000000">0.150 </font></td> <td width="30"><font color="#000000">0.150 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">318.310 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Cerebellum</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">40.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">700 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.150 </font></td> <td width="30"><font color="#000000">0.040 </font></td> <td width="30"><font color="#000000">2.00E+5 </font></td> <td width="30"><font color="#000000">106.103 </font></td> <td width="30"><font color="#000000">0.220 </font></td> <td width="30"><font color="#000000">4.50E+7 </font></td> <td width="30"><font color="#000000">5.305 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Cerebro Spinal Fluid</font> </td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">65.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">40 </font></td> <td width="30"><font color="#000000">1.592 </font></td> <td width="30"><font color="#000000">0.000 </font></td> <td width="30"><font color="#000000">2.000 </font></td> <td width="30"><font color="#000000">0.00E+0 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.000 </font></td> <td width="30"><font color="#000000">0.00E+0 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Cervix</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">45.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">200 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.300 </font></td> <td width="30"><font color="#000000">1.50E+5 </font></td> <td width="30"><font color="#000000">106.103 </font></td> <td width="30"><font color="#000000">0.180 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">1.592 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Colon</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">50.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">3000 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">0.010 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">1.592 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> </tr> <tr> <td width="84"><font color="#000000">Cornea</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">48.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">4000 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.050 </font></td> <td width="30"><font color="#000000">0.400 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Dura</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">40.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.150 </font></td> <td width="30"><font color="#000000">200 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.500 </font></td> <td width="30"><font color="#000000">1.00E+4 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">1.00E+6 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Eye Tissues (Sclera)</font> </td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">50.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">4000 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.500 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">5.00E+6 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Fat (Average Infiltrated)</font> </td> <td width="30"><font color="#000000">2.500 </font></td> <td width="30"><font color="#000000">9.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">35 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.035 </font></td> <td width="30"><font color="#000000">3.30E+4 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.050 </font></td> <td width="30"><font color="#000000">1.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.010 </font></td> </tr> <tr> <td width="84"><font color="#000000">Fat (Not Infiltrated)</font> </td> <td width="30"><font color="#000000">2.500 </font></td> <td width="30"><font color="#000000">3.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">15 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.010 </font></td> <td width="30"><font color="#000000">3.30E+4 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.050 </font></td> <td width="30"><font color="#000000">1.00E+7 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.010 </font></td> </tr> <tr> <td width="84"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> </tr> <tr> <td width="84"><font color="#000000">Gall Bladder</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">55.00 </font></td> <td width="30"><font color="#000000">7.579 </font></td> <td width="30"><font color="#000000">0.050 </font></td> <td width="30"><font color="#000000">40 </font></td> <td width="30"><font color="#000000">1.592 </font></td> <td width="30"><font color="#000000">0.000 </font></td> <td width="30"><font color="#000000">0.900 </font></td> <td width="30"><font color="#000000">1.00E+3 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">1.00E+4 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Gall Bladder Bile</font> </td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">66.00 </font></td> <td width="30"><font color="#000000">7.579 </font></td> <td width="30"><font color="#000000">0.050 </font></td> <td width="30"><font color="#000000">50 </font></td> <td width="30"><font color="#000000">1.592 </font></td> <td width="30"><font color="#000000">0.000 </font></td> <td width="30"><font color="#000000">1.400 </font></td> <td width="30"><font color="#000000">0.00E+0 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">0.00E+0 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.200 </font></td> </tr> <tr> <td width="84"><font color="#000000">Heart</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">50.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">1200 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.050 </font></td> <td width="30"><font color="#000000">0.050 </font></td> <td width="30"><font color="#000000">4.50E+5 </font></td> <td width="30"><font color="#000000">72.343 </font></td> <td width="30"><font color="#000000">0.220 </font></td> <td width="30"><font color="#000000">2.50E+7 </font></td> <td width="30"><font color="#000000">4.547 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Kidney</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">47.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">3500 </font></td> <td width="30"><font color="#000000">198.944 </font></td> <td width="30"><font color="#000000">0.220 </font></td> <td width="30"><font color="#000000">0.050 </font></td> <td width="30"><font color="#000000">2.50E+5 </font></td> <td width="30"><font color="#000000">79.577 </font></td> <td width="30"><font color="#000000">0.220 </font></td> <td width="30"><font color="#000000">3.00E+7 </font></td> <td width="30"><font color="#000000">4.547 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Lens Cortex</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">42.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">1500 </font></td> <td width="30"><font color="#000000">79.577 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.300 </font></td> <td width="30"><font color="#000000">2.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> </tr> <tr> <td width="84"><font color="#000000">Lens Nucleus</font></td> <td width="30"><font color="#000000">3.000 </font></td> <td width="30"><font color="#000000">32.00 </font></td> <td width="30"><font color="#000000">8.842 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">100 </font></td> <td width="30"><font color="#000000">10.610 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">1.00E+3 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">5.00E+3 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Liver</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">39.00 </font></td> <td width="30"><font color="#000000">8.842 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">6000 </font></td> <td width="30"><font color="#000000">530.516 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">0.020 </font></td> <td width="30"><font color="#000000">5.00E+4 </font></td> <td width="30"><font color="#000000">22.736 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">3.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.050 </font></td> </tr> <tr> <td width="84"><font color="#000000">Lung (Deflated)</font> </td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">45.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">1000 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">5.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">1.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Lung (Inflated)</font> </td> <td width="30"><font color="#000000">2.500 </font></td> <td width="30"><font color="#000000">18.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">500 </font></td> <td width="30"><font color="#000000">63.662 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.030 </font></td> <td width="30"><font color="#000000">2.50E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Muscle</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">50.00 </font></td> <td width="30"><font color="#000000">7.234 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">7000 </font></td> <td width="30"><font color="#000000">353.678 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">1.20E+6 </font></td> <td width="30"><font color="#000000">318.310 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">2.50E+7 </font></td> <td width="30"><font color="#000000">2.274 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> </tr> <tr> <td width="84"><font color="#000000">Nerve</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">26.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">500 </font></td> <td width="30"><font color="#000000">106.103 </font></td> <td width="30"><font color="#000000">0.150 </font></td> <td width="30"><font color="#000000">0.006 </font></td> <td width="30"><font color="#000000">7.00E+4 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Ovary</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">40.00 </font></td> <td width="30"><font color="#000000">8.842 </font></td> <td width="30"><font color="#000000">0.150 </font></td> <td width="30"><font color="#000000">400 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.250 </font></td> <td width="30"><font color="#000000">0.300 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.270 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Skin (Dry)</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">32.00 </font></td> <td width="30"><font color="#000000">7.234 </font></td> <td width="30"><font color="#000000">0.000 </font></td> <td width="30"><font color="#000000">1100 </font></td> <td width="30"><font color="#000000">32.481 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">0.000 </font></td> <td width="30"><font color="#000000">0.00E+0 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">0.00E+0 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.200 </font></td> </tr> <tr> <td width="84"><font color="#000000">Skin (Wet)</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">39.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">280 </font></td> <td width="30"><font color="#000000">79.577 </font></td> <td width="30"><font color="#000000">0.000 </font></td> <td width="30"><font color="#000000">0.000 </font></td> <td width="30"><font color="#000000">3.00E+4 </font></td> <td width="30"><font color="#000000">1.592 </font></td> <td width="30"><font color="#000000">0.160 </font></td> <td width="30"><font color="#000000">3.00E+4 </font></td> <td width="30"><font color="#000000">1.592 </font></td> <td width="30"><font color="#000000">0.200 </font></td> </tr> <tr> <td width="84"><font color="#000000">Small Intestine</font> </td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">50.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">10000 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.500 </font></td> <td width="30"><font color="#000000">5.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> </tr> <tr> <td width="84"><font color="#000000">Spleen</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">48.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">2500 </font></td> <td width="30"><font color="#000000">63.662 </font></td> <td width="30"><font color="#000000">0.150 </font></td> <td width="30"><font color="#000000">0.030 </font></td> <td width="30"><font color="#000000">2.00E+5 </font></td> <td width="30"><font color="#000000">265.258 </font></td> <td width="30"><font color="#000000">0.250 </font></td> <td width="30"><font color="#000000">5.00E+7 </font></td> <td width="30"><font color="#000000">6.366 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Stomach</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">60.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">2000 </font></td> <td width="30"><font color="#000000">79.577 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.500 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Tendon</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">42.00 </font></td> <td width="30"><font color="#000000">12.243 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">60 </font></td> <td width="30"><font color="#000000">6.366 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.250 </font></td> <td width="30"><font color="#000000">6.00E+4 </font></td> <td width="30"><font color="#000000">318.310 </font></td> <td width="30"><font color="#000000">0.220 </font></td> <td width="30"><font color="#000000">2.00E+7 </font></td> <td width="30"><font color="#000000">1.326 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Testis</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">55.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">5000 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.400 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Thyroid</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">55.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">2500 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.500 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> <td width="30"></td> </tr> <tr> <td width="84"><font color="#000000">Tongue</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">50.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">4000 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.250 </font></td> <td width="30"><font color="#000000">1.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">4.00E+7 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Trachea</font></td> <td width="30"><font color="#000000">2.500 </font></td> <td width="30"><font color="#000000">38.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">400 </font></td> <td width="30"><font color="#000000">63.662 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.300 </font></td> <td width="30"><font color="#000000">5.00E+4 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">1.00E+6 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr> <td width="84"><font color="#000000">Uterus</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">55.00 </font></td> <td width="30"><font color="#000000">7.958 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">800 </font></td> <td width="30"><font color="#000000">31.831 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">3.00E+5 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.200 </font></td> <td width="30"><font color="#000000">3.50E+7 </font></td> <td width="30"><font color="#000000">1.061 </font></td> <td width="30"><font color="#000000">0.000 </font></td> </tr> <tr align="BASELINE"> <td width="84"><font color="#000000">Vitreous Humor</font></td> <td width="30"><font color="#000000">4.000 </font></td> <td width="30"><font color="#000000">65.00 </font></td> <td width="30"><font color="#000000">7.234 </font></td> <td width="30"><font color="#000000">0.000 </font></td> <td width="30"><font color="#000000">30 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.100 </font></td> <td width="30"><font color="#000000">1.500 </font></td> <td width="30"><font color="#000000">0.00E+0 </font></td> <td width="30"><font color="#000000">159.155 </font></td> <td width="30"><font color="#000000">0.000 </font></td> <td width="30"><font color="#000000">0.00E+0 </font></td> <td width="30"><font color="#000000">15.915 </font></td> <td align="BASELINE" width="20"><font color="#000000">0.000 </font></td> </tr> </table>
Če se je izpisala tabela v obliki html, smo na dobri poti. Sedaj je potrebno razdelati to tabelo, da se iz nje izvleče podatke. V ta namen uporabimo metodo findAll, kjer bomo poiskali indekse, kjer nastopa oznaka za začetek vrste "tr" in začetek celice "td". Nato shranjujemo po 16 vrednosti iz ene vrste v spremenljivko record in nato vse vrste v records.
Nato s pomočjo metode DataFrame znotraj modula Pandas kreiramo Dataframe, ki je neke vrste dvodimenzionalni niz z dodatnimi možnostmi indeksiranja itd.
# Poiščem vrednosti v tabeli in jih shranim v niz records
import pandas as pd
records = []
for tr in table2[0].findAll("tr"):
trs = tr.findAll("td")
record = []
for i in range(15): # 16 stolpcev v vrsti shranim v record
record.append(trs[i].text)
records.append(record) # zložim vrste v records
df = pd.DataFrame(data=records) # naredim DataFrame s Pandas
df # izrišem DataFrame
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Tissue Type \ Parameter | ef | del1 | tau1 (ps) | alf1 | del2 | tau2 (ns) | alf2 | sig | del3 | tau3 (us) | alf3 | del4 | tau4 (ms) | alf4 |
1 | |||||||||||||||
2 | Aorta | 4.000 | 40.00 | 8.842 | 0.100 | 50 | 3.183 | 0.100 | 0.250 | 1.00E+5 | 159.155 | 0.200 | 1.00E+7 | 1.592 | 0.000 |
3 | Bladder | 2.500 | 16.00 | 8.842 | 0.100 | 400 | 159.155 | 0.100 | 0.200 | 1.00E+5 | 159.155 | 0.200 | 1.00E+7 | 15.915 | 0.000 |
4 | Blood | 4.000 | 56.00 | 8.377 | 0.100 | 5200 | 132.629 | 0.100 | 0.700 | 0.00E+0 | 159.155 | 0.200 | 0.00E+0 | 15.915 | 0.000 |
5 | Bone (Cancellous) | 2.500 | 18.00 | 13.263 | 0.220 | 300 | 79.577 | 0.250 | 0.070 | 2.00E+4 | 159.155 | 0.200 | 2.00E+7 | 15.915 | 0.000 |
6 | Bone (Cortical) | 2.500 | 10.00 | 13.263 | 0.200 | 180 | 79.577 | 0.200 | 0.020 | 5.00E+3 | 159.155 | 0.200 | 1.00E+5 | 15.915 | 0.000 |
7 | |||||||||||||||
8 | Bone Marrow (Infiltrated) | 2.500 | 9.00 | 14.469 | 0.200 | 80 | 15.915 | 0.100 | 0.100 | 1.00E+4 | 1591.549 | 0.100 | 2.00E+6 | 15.915 | 0.100 |
9 | Bone Marrow (Not Infiltrated)\n | 2.500 | 3.00 | 7.958 | 0.200 | 25 | 15.915 | 0.100 | 0.001 | 5.00E+3 | 1591.549 | 0.100 | 2.00E+6 | 15.915 | 0.100 |
10 | Brain (Grey Matter) | 4.000 | 45.00 | 7.958 | 0.100 | 400 | 15.915 | 0.150 | 0.020 | 2.00E+5 | 106.103 | 0.220 | 4.50E+7 | 5.305 | 0.000 |
11 | Brain (White Matter) | 4.000 | 32.00 | 7.958 | 0.100 | 100 | 7.958 | 0.100 | 0.020 | 4.00E+4 | 53.052 | 0.300 | 3.50E+7 | 7.958 | 0.020 |
12 | Breast fat | 2.500 | 3.00 | 17.680 | 0.100 | 15 | 63.660 | 0.100 | 0.010 | 5.00E+4 | 454.700 | 0.100 | 2.00E+7 | 13.260 | 0.000 |
13 | |||||||||||||||
14 | Cartilage | 4.000 | 38.00 | 13.263 | 0.150 | 2500 | 144.686 | 0.150 | 0.150 | 1.00E+5 | 318.310 | 0.100 | 4.00E+7 | 15.915 | 0.000 |
15 | Cerebellum | 4.000 | 40.00 | 7.958 | 0.100 | 700 | 15.915 | 0.150 | 0.040 | 2.00E+5 | 106.103 | 0.220 | 4.50E+7 | 5.305 | 0.000 |
16 | Cerebro Spinal Fluid | 4.000 | 65.00 | 7.958 | 0.100 | 40 | 1.592 | 0.000 | 2.000 | 0.00E+0 | 159.155 | 0.000 | 0.00E+0 | 15.915 | 0.000 |
17 | Cervix | 4.000 | 45.00 | 7.958 | 0.100 | 200 | 15.915 | 0.100 | 0.300 | 1.50E+5 | 106.103 | 0.180 | 4.00E+7 | 1.592 | 0.000 |
18 | Colon | 4.000 | 50.00 | 7.958 | 0.100 | 3000 | 159.155 | 0.200 | 0.010 | 1.00E+5 | 159.155 | 0.200 | 4.00E+7 | 1.592 | 0.000 |
19 | |||||||||||||||
20 | Cornea | 4.000 | 48.00 | 7.958 | 0.100 | 4000 | 159.155 | 0.050 | 0.400 | 1.00E+5 | 15.915 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
21 | Dura | 4.000 | 40.00 | 7.958 | 0.150 | 200 | 7.958 | 0.100 | 0.500 | 1.00E+4 | 159.155 | 0.200 | 1.00E+6 | 15.915 | 0.000 |
22 | Eye Tissues (Sclera) | 4.000 | 50.00 | 7.958 | 0.100 | 4000 | 159.155 | 0.100 | 0.500 | 1.00E+5 | 159.155 | 0.200 | 5.00E+6 | 15.915 | 0.000 |
23 | Fat (Average Infiltrated) | 2.500 | 9.00 | 7.958 | 0.200 | 35 | 15.915 | 0.100 | 0.035 | 3.30E+4 | 159.155 | 0.050 | 1.00E+7 | 15.915 | 0.010 |
24 | Fat (Not Infiltrated) | 2.500 | 3.00 | 7.958 | 0.200 | 15 | 15.915 | 0.100 | 0.010 | 3.30E+4 | 159.155 | 0.050 | 1.00E+7 | 7.958 | 0.010 |
25 | |||||||||||||||
26 | Gall Bladder | 4.000 | 55.00 | 7.579 | 0.050 | 40 | 1.592 | 0.000 | 0.900 | 1.00E+3 | 159.155 | 0.200 | 1.00E+4 | 15.915 | 0.000 |
27 | Gall Bladder Bile | 4.000 | 66.00 | 7.579 | 0.050 | 50 | 1.592 | 0.000 | 1.400 | 0.00E+0 | 159.155 | 0.200 | 0.00E+0 | 15.915 | 0.200 |
28 | Heart | 4.000 | 50.00 | 7.958 | 0.100 | 1200 | 159.155 | 0.050 | 0.050 | 4.50E+5 | 72.343 | 0.220 | 2.50E+7 | 4.547 | 0.000 |
29 | Kidney | 4.000 | 47.00 | 7.958 | 0.100 | 3500 | 198.944 | 0.220 | 0.050 | 2.50E+5 | 79.577 | 0.220 | 3.00E+7 | 4.547 | 0.000 |
30 | Lens Cortex | 4.000 | 42.00 | 7.958 | 0.100 | 1500 | 79.577 | 0.100 | 0.300 | 2.00E+5 | 159.155 | 0.100 | 4.00E+7 | 15.915 | 0.000 |
31 | |||||||||||||||
32 | Lens Nucleus | 3.000 | 32.00 | 8.842 | 0.100 | 100 | 10.610 | 0.200 | 0.200 | 1.00E+3 | 15.915 | 0.200 | 5.00E+3 | 15.915 | 0.000 |
33 | Liver | 4.000 | 39.00 | 8.842 | 0.100 | 6000 | 530.516 | 0.200 | 0.020 | 5.00E+4 | 22.736 | 0.200 | 3.00E+7 | 15.915 | 0.050 |
34 | Lung (Deflated) | 4.000 | 45.00 | 7.958 | 0.100 | 1000 | 159.155 | 0.100 | 0.200 | 5.00E+5 | 159.155 | 0.200 | 1.00E+7 | 15.915 | 0.000 |
35 | Lung (Inflated) | 2.500 | 18.00 | 7.958 | 0.100 | 500 | 63.662 | 0.100 | 0.030 | 2.50E+5 | 159.155 | 0.200 | 4.00E+7 | 7.958 | 0.000 |
36 | Muscle | 4.000 | 50.00 | 7.234 | 0.100 | 7000 | 353.678 | 0.100 | 0.200 | 1.20E+6 | 318.310 | 0.100 | 2.50E+7 | 2.274 | 0.000 |
37 | |||||||||||||||
38 | Nerve | 4.000 | 26.00 | 7.958 | 0.100 | 500 | 106.103 | 0.150 | 0.006 | 7.00E+4 | 15.915 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
39 | Ovary | 4.000 | 40.00 | 8.842 | 0.150 | 400 | 15.915 | 0.250 | 0.300 | 1.00E+5 | 159.155 | 0.270 | 4.00E+7 | 15.915 | 0.000 |
40 | Skin (Dry) | 4.000 | 32.00 | 7.234 | 0.000 | 1100 | 32.481 | 0.200 | 0.000 | 0.00E+0 | 159.155 | 0.200 | 0.00E+0 | 15.915 | 0.200 |
41 | Skin (Wet) | 4.000 | 39.00 | 7.958 | 0.100 | 280 | 79.577 | 0.000 | 0.000 | 3.00E+4 | 1.592 | 0.160 | 3.00E+4 | 1.592 | 0.200 |
42 | Small Intestine | 4.000 | 50.00 | 7.958 | 0.100 | 10000 | 159.155 | 0.100 | 0.500 | 5.00E+5 | 159.155 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
43 | |||||||||||||||
44 | Spleen | 4.000 | 48.00 | 7.958 | 0.100 | 2500 | 63.662 | 0.150 | 0.030 | 2.00E+5 | 265.258 | 0.250 | 5.00E+7 | 6.366 | 0.000 |
45 | Stomach | 4.000 | 60.00 | 7.958 | 0.100 | 2000 | 79.577 | 0.100 | 0.500 | 1.00E+5 | 159.155 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
46 | Tendon | 4.000 | 42.00 | 12.243 | 0.100 | 60 | 6.366 | 0.100 | 0.250 | 6.00E+4 | 318.310 | 0.220 | 2.00E+7 | 1.326 | 0.000 |
47 | Testis | 4.000 | 55.00 | 7.958 | 0.100 | 5000 | 159.155 | 0.100 | 0.400 | 1.00E+5 | 159.155 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
48 | Thyroid | 4.000 | 55.00 | 7.958 | 0.100 | 2500 | 159.155 | 0.100 | 0.500 | 1.00E+5 | 159.155 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
49 | |||||||||||||||
50 | Tongue | 4.000 | 50.00 | 7.958 | 0.100 | 4000 | 159.155 | 0.100 | 0.250 | 1.00E+5 | 159.155 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
51 | Trachea | 2.500 | 38.00 | 7.958 | 0.100 | 400 | 63.662 | 0.100 | 0.300 | 5.00E+4 | 15.915 | 0.200 | 1.00E+6 | 15.915 | 0.000 |
52 | Uterus | 4.000 | 55.00 | 7.958 | 0.100 | 800 | 31.831 | 0.100 | 0.200 | 3.00E+5 | 159.155 | 0.200 | 3.50E+7 | 1.061 | 0.000 |
53 | Vitreous Humor | 4.000 | 65.00 | 7.234 | 0.000 | 30 | 159.155 | 0.100 | 1.500 | 0.00E+0 | 159.155 | 0.000 | 0.00E+0 | 15.915 | 0.000 |
Če je vse potekalo OK, smo dobili izpis DataFrame-a z 53 vrsticami in 15 stolpci. Poglejmo si nekaj osnovnih ukazov za delo z Dataframe-om.
# Za osnovno delo z Dataframe, uporabi print za izpis, sicer izpiše le rezultat zadnje vrstice
print(type(df)) # ugotovimo tip spremenljivke
print(df.values[0]) # izpis prve vrstice
print(df.values[2][1]) # tretja vrstica, drugi stolpec
#df.values # celoten niz
<class 'pandas.core.frame.DataFrame'> ['Tissue Type \\ Parameter ' 'ef ' 'del1' 'tau1 (ps) ' 'alf1 ' 'del2' 'tau2 (ns)' 'alf2 ' 'sig' 'del3' 'tau3 (us) ' 'alf3' 'del4' 'tau4 (ms) ' 'alf4'] 4.000
Za boljše delo je potrebno določiti indeks, po katerem bomo lahko naslavljali vrstice. Trenutno je indeks kar na začetnem stolpcu, določenim s črkami od 0 do 53. Mi želimo naslavljati vrstice z imeni snovi, npr. Aorta, Bladder itd.
df.set_index(0, inplace=True) # nastavimo indeks na stolpec z imeni snovi
df # na začetku ni več številk, indeksi so izpisani bold
# če to vrstico zaženeš še enkrat boš naredil napako, ker črke 0 ni več v prvi vrsti.
# V tem primeru se moraš vrniti na začetek in še enkrat prebrati tabelo
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | ||||||||||||||
Tissue Type \ Parameter | ef | del1 | tau1 (ps) | alf1 | del2 | tau2 (ns) | alf2 | sig | del3 | tau3 (us) | alf3 | del4 | tau4 (ms) | alf4 |
Aorta | 4.000 | 40.00 | 8.842 | 0.100 | 50 | 3.183 | 0.100 | 0.250 | 1.00E+5 | 159.155 | 0.200 | 1.00E+7 | 1.592 | 0.000 |
Bladder | 2.500 | 16.00 | 8.842 | 0.100 | 400 | 159.155 | 0.100 | 0.200 | 1.00E+5 | 159.155 | 0.200 | 1.00E+7 | 15.915 | 0.000 |
Blood | 4.000 | 56.00 | 8.377 | 0.100 | 5200 | 132.629 | 0.100 | 0.700 | 0.00E+0 | 159.155 | 0.200 | 0.00E+0 | 15.915 | 0.000 |
Bone (Cancellous) | 2.500 | 18.00 | 13.263 | 0.220 | 300 | 79.577 | 0.250 | 0.070 | 2.00E+4 | 159.155 | 0.200 | 2.00E+7 | 15.915 | 0.000 |
Bone (Cortical) | 2.500 | 10.00 | 13.263 | 0.200 | 180 | 79.577 | 0.200 | 0.020 | 5.00E+3 | 159.155 | 0.200 | 1.00E+5 | 15.915 | 0.000 |
Bone Marrow (Infiltrated) | 2.500 | 9.00 | 14.469 | 0.200 | 80 | 15.915 | 0.100 | 0.100 | 1.00E+4 | 1591.549 | 0.100 | 2.00E+6 | 15.915 | 0.100 |
Bone Marrow (Not Infiltrated)\n | 2.500 | 3.00 | 7.958 | 0.200 | 25 | 15.915 | 0.100 | 0.001 | 5.00E+3 | 1591.549 | 0.100 | 2.00E+6 | 15.915 | 0.100 |
Brain (Grey Matter) | 4.000 | 45.00 | 7.958 | 0.100 | 400 | 15.915 | 0.150 | 0.020 | 2.00E+5 | 106.103 | 0.220 | 4.50E+7 | 5.305 | 0.000 |
Brain (White Matter) | 4.000 | 32.00 | 7.958 | 0.100 | 100 | 7.958 | 0.100 | 0.020 | 4.00E+4 | 53.052 | 0.300 | 3.50E+7 | 7.958 | 0.020 |
Breast fat | 2.500 | 3.00 | 17.680 | 0.100 | 15 | 63.660 | 0.100 | 0.010 | 5.00E+4 | 454.700 | 0.100 | 2.00E+7 | 13.260 | 0.000 |
Cartilage | 4.000 | 38.00 | 13.263 | 0.150 | 2500 | 144.686 | 0.150 | 0.150 | 1.00E+5 | 318.310 | 0.100 | 4.00E+7 | 15.915 | 0.000 |
Cerebellum | 4.000 | 40.00 | 7.958 | 0.100 | 700 | 15.915 | 0.150 | 0.040 | 2.00E+5 | 106.103 | 0.220 | 4.50E+7 | 5.305 | 0.000 |
Cerebro Spinal Fluid | 4.000 | 65.00 | 7.958 | 0.100 | 40 | 1.592 | 0.000 | 2.000 | 0.00E+0 | 159.155 | 0.000 | 0.00E+0 | 15.915 | 0.000 |
Cervix | 4.000 | 45.00 | 7.958 | 0.100 | 200 | 15.915 | 0.100 | 0.300 | 1.50E+5 | 106.103 | 0.180 | 4.00E+7 | 1.592 | 0.000 |
Colon | 4.000 | 50.00 | 7.958 | 0.100 | 3000 | 159.155 | 0.200 | 0.010 | 1.00E+5 | 159.155 | 0.200 | 4.00E+7 | 1.592 | 0.000 |
Cornea | 4.000 | 48.00 | 7.958 | 0.100 | 4000 | 159.155 | 0.050 | 0.400 | 1.00E+5 | 15.915 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
Dura | 4.000 | 40.00 | 7.958 | 0.150 | 200 | 7.958 | 0.100 | 0.500 | 1.00E+4 | 159.155 | 0.200 | 1.00E+6 | 15.915 | 0.000 |
Eye Tissues (Sclera) | 4.000 | 50.00 | 7.958 | 0.100 | 4000 | 159.155 | 0.100 | 0.500 | 1.00E+5 | 159.155 | 0.200 | 5.00E+6 | 15.915 | 0.000 |
Fat (Average Infiltrated) | 2.500 | 9.00 | 7.958 | 0.200 | 35 | 15.915 | 0.100 | 0.035 | 3.30E+4 | 159.155 | 0.050 | 1.00E+7 | 15.915 | 0.010 |
Fat (Not Infiltrated) | 2.500 | 3.00 | 7.958 | 0.200 | 15 | 15.915 | 0.100 | 0.010 | 3.30E+4 | 159.155 | 0.050 | 1.00E+7 | 7.958 | 0.010 |
Gall Bladder | 4.000 | 55.00 | 7.579 | 0.050 | 40 | 1.592 | 0.000 | 0.900 | 1.00E+3 | 159.155 | 0.200 | 1.00E+4 | 15.915 | 0.000 |
Gall Bladder Bile | 4.000 | 66.00 | 7.579 | 0.050 | 50 | 1.592 | 0.000 | 1.400 | 0.00E+0 | 159.155 | 0.200 | 0.00E+0 | 15.915 | 0.200 |
Heart | 4.000 | 50.00 | 7.958 | 0.100 | 1200 | 159.155 | 0.050 | 0.050 | 4.50E+5 | 72.343 | 0.220 | 2.50E+7 | 4.547 | 0.000 |
Kidney | 4.000 | 47.00 | 7.958 | 0.100 | 3500 | 198.944 | 0.220 | 0.050 | 2.50E+5 | 79.577 | 0.220 | 3.00E+7 | 4.547 | 0.000 |
Lens Cortex | 4.000 | 42.00 | 7.958 | 0.100 | 1500 | 79.577 | 0.100 | 0.300 | 2.00E+5 | 159.155 | 0.100 | 4.00E+7 | 15.915 | 0.000 |
Lens Nucleus | 3.000 | 32.00 | 8.842 | 0.100 | 100 | 10.610 | 0.200 | 0.200 | 1.00E+3 | 15.915 | 0.200 | 5.00E+3 | 15.915 | 0.000 |
Liver | 4.000 | 39.00 | 8.842 | 0.100 | 6000 | 530.516 | 0.200 | 0.020 | 5.00E+4 | 22.736 | 0.200 | 3.00E+7 | 15.915 | 0.050 |
Lung (Deflated) | 4.000 | 45.00 | 7.958 | 0.100 | 1000 | 159.155 | 0.100 | 0.200 | 5.00E+5 | 159.155 | 0.200 | 1.00E+7 | 15.915 | 0.000 |
Lung (Inflated) | 2.500 | 18.00 | 7.958 | 0.100 | 500 | 63.662 | 0.100 | 0.030 | 2.50E+5 | 159.155 | 0.200 | 4.00E+7 | 7.958 | 0.000 |
Muscle | 4.000 | 50.00 | 7.234 | 0.100 | 7000 | 353.678 | 0.100 | 0.200 | 1.20E+6 | 318.310 | 0.100 | 2.50E+7 | 2.274 | 0.000 |
Nerve | 4.000 | 26.00 | 7.958 | 0.100 | 500 | 106.103 | 0.150 | 0.006 | 7.00E+4 | 15.915 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
Ovary | 4.000 | 40.00 | 8.842 | 0.150 | 400 | 15.915 | 0.250 | 0.300 | 1.00E+5 | 159.155 | 0.270 | 4.00E+7 | 15.915 | 0.000 |
Skin (Dry) | 4.000 | 32.00 | 7.234 | 0.000 | 1100 | 32.481 | 0.200 | 0.000 | 0.00E+0 | 159.155 | 0.200 | 0.00E+0 | 15.915 | 0.200 |
Skin (Wet) | 4.000 | 39.00 | 7.958 | 0.100 | 280 | 79.577 | 0.000 | 0.000 | 3.00E+4 | 1.592 | 0.160 | 3.00E+4 | 1.592 | 0.200 |
Small Intestine | 4.000 | 50.00 | 7.958 | 0.100 | 10000 | 159.155 | 0.100 | 0.500 | 5.00E+5 | 159.155 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
Spleen | 4.000 | 48.00 | 7.958 | 0.100 | 2500 | 63.662 | 0.150 | 0.030 | 2.00E+5 | 265.258 | 0.250 | 5.00E+7 | 6.366 | 0.000 |
Stomach | 4.000 | 60.00 | 7.958 | 0.100 | 2000 | 79.577 | 0.100 | 0.500 | 1.00E+5 | 159.155 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
Tendon | 4.000 | 42.00 | 12.243 | 0.100 | 60 | 6.366 | 0.100 | 0.250 | 6.00E+4 | 318.310 | 0.220 | 2.00E+7 | 1.326 | 0.000 |
Testis | 4.000 | 55.00 | 7.958 | 0.100 | 5000 | 159.155 | 0.100 | 0.400 | 1.00E+5 | 159.155 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
Thyroid | 4.000 | 55.00 | 7.958 | 0.100 | 2500 | 159.155 | 0.100 | 0.500 | 1.00E+5 | 159.155 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
Tongue | 4.000 | 50.00 | 7.958 | 0.100 | 4000 | 159.155 | 0.100 | 0.250 | 1.00E+5 | 159.155 | 0.200 | 4.00E+7 | 15.915 | 0.000 |
Trachea | 2.500 | 38.00 | 7.958 | 0.100 | 400 | 63.662 | 0.100 | 0.300 | 5.00E+4 | 15.915 | 0.200 | 1.00E+6 | 15.915 | 0.000 |
Uterus | 4.000 | 55.00 | 7.958 | 0.100 | 800 | 31.831 | 0.100 | 0.200 | 3.00E+5 | 159.155 | 0.200 | 3.50E+7 | 1.061 | 0.000 |
Vitreous Humor | 4.000 | 65.00 | 7.234 | 0.000 | 30 | 159.155 | 0.100 | 1.500 | 0.00E+0 | 159.155 | 0.000 | 0.00E+0 | 15.915 | 0.000 |
Sedaj lahko naslavljaš posamezno vrstico in iz nje izvečeš podatke. (Za več o delu z Dataframe si poglej na spletu, za začetek npr. https://www.geeksforgeeks.org/python-pandas-dataframe/)
print(df.index.tolist()[2:10]) # spremeniš indeks v niz, bomo rabili v kratkem
['Aorta', 'Bladder', 'Blood', 'Bone (Cancellous) ', 'Bone (Cortical) ', '', 'Bone Marrow (Infiltrated) ', 'Bone Marrow (Not Infiltrated)\n']
vrstica = df.loc['Blood'] # vrednosti vrstice z indeksom Blood
print(vrstica) # izpis
print(vrstica[1]) # prvi člen
1 4.000 2 56.00 3 8.377 4 0.100 5 5200 6 132.629 7 0.100 8 0.700 9 0.00E+0 10 159.155 11 0.200 12 0.00E+0 13 15.915 14 0.000 Name: Blood, dtype: object 4.000
Če želimo razvrstiti (sortirati?!) tabelo tako, da poiščemo vrstice, ki izpolnjujejo določene pogoje, npr., da je specifična prevodnost većja od 1 moramo storiti sledeče:
df2 = df.apply(pd.to_numeric, errors='coerce') # spremeni str vrednosti v numerične, kjer ne gre izpiše NaN
df3=df2[df2[8] > 0.5]
df3
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | ||||||||||||||
Blood | 4.0 | 56.0 | 8.377 | 0.10 | 5200.0 | 132.629 | 0.1 | 0.7 | 0.0 | 159.155 | 0.2 | 0.0 | 15.915 | 0.0 |
Cerebro Spinal Fluid | 4.0 | 65.0 | 7.958 | 0.10 | 40.0 | 1.592 | 0.0 | 2.0 | 0.0 | 159.155 | 0.0 | 0.0 | 15.915 | 0.0 |
Gall Bladder | 4.0 | 55.0 | 7.579 | 0.05 | 40.0 | 1.592 | 0.0 | 0.9 | 1000.0 | 159.155 | 0.2 | 10000.0 | 15.915 | 0.0 |
Gall Bladder Bile | 4.0 | 66.0 | 7.579 | 0.05 | 50.0 | 1.592 | 0.0 | 1.4 | 0.0 | 159.155 | 0.2 | 0.0 | 15.915 | 0.2 |
Vitreous Humor | 4.0 | 65.0 | 7.234 | 0.00 | 30.0 | 159.155 | 0.1 | 1.5 | 0.0 | 159.155 | 0.0 | 0.0 | 15.915 | 0.0 |
Lahko pa tudi razvrstimo vrstice, npr. po velikosti stolpca 8, v katerem so vrednosti prevodnosti snovi. Od največje do najmanjše vrednosti. Ugotovimo, da so najbolj prevodne snovi v naših možganih (cerebro-spinalna tekočina CSF) in očesna steklovina (VH).
# Razvrščanje glede na vrednosti v stolpcu
df2.sort_values(by=[8],ascending=False)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | ||||||||||||||
Cerebro Spinal Fluid | 4.0 | 65.0 | 7.958 | 0.10 | 40.0 | 1.592 | 0.00 | 2.000 | 0.0 | 159.155 | 0.00 | 0.0 | 15.915 | 0.00 |
Vitreous Humor | 4.0 | 65.0 | 7.234 | 0.00 | 30.0 | 159.155 | 0.10 | 1.500 | 0.0 | 159.155 | 0.00 | 0.0 | 15.915 | 0.00 |
Gall Bladder Bile | 4.0 | 66.0 | 7.579 | 0.05 | 50.0 | 1.592 | 0.00 | 1.400 | 0.0 | 159.155 | 0.20 | 0.0 | 15.915 | 0.20 |
Gall Bladder | 4.0 | 55.0 | 7.579 | 0.05 | 40.0 | 1.592 | 0.00 | 0.900 | 1000.0 | 159.155 | 0.20 | 10000.0 | 15.915 | 0.00 |
Blood | 4.0 | 56.0 | 8.377 | 0.10 | 5200.0 | 132.629 | 0.10 | 0.700 | 0.0 | 159.155 | 0.20 | 0.0 | 15.915 | 0.00 |
Stomach | 4.0 | 60.0 | 7.958 | 0.10 | 2000.0 | 79.577 | 0.10 | 0.500 | 100000.0 | 159.155 | 0.20 | 40000000.0 | 15.915 | 0.00 |
Dura | 4.0 | 40.0 | 7.958 | 0.15 | 200.0 | 7.958 | 0.10 | 0.500 | 10000.0 | 159.155 | 0.20 | 1000000.0 | 15.915 | 0.00 |
Small Intestine | 4.0 | 50.0 | 7.958 | 0.10 | 10000.0 | 159.155 | 0.10 | 0.500 | 500000.0 | 159.155 | 0.20 | 40000000.0 | 15.915 | 0.00 |
Thyroid | 4.0 | 55.0 | 7.958 | 0.10 | 2500.0 | 159.155 | 0.10 | 0.500 | 100000.0 | 159.155 | 0.20 | 40000000.0 | 15.915 | 0.00 |
Eye Tissues (Sclera) | 4.0 | 50.0 | 7.958 | 0.10 | 4000.0 | 159.155 | 0.10 | 0.500 | 100000.0 | 159.155 | 0.20 | 5000000.0 | 15.915 | 0.00 |
Testis | 4.0 | 55.0 | 7.958 | 0.10 | 5000.0 | 159.155 | 0.10 | 0.400 | 100000.0 | 159.155 | 0.20 | 40000000.0 | 15.915 | 0.00 |
Cornea | 4.0 | 48.0 | 7.958 | 0.10 | 4000.0 | 159.155 | 0.05 | 0.400 | 100000.0 | 15.915 | 0.20 | 40000000.0 | 15.915 | 0.00 |
Ovary | 4.0 | 40.0 | 8.842 | 0.15 | 400.0 | 15.915 | 0.25 | 0.300 | 100000.0 | 159.155 | 0.27 | 40000000.0 | 15.915 | 0.00 |
Lens Cortex | 4.0 | 42.0 | 7.958 | 0.10 | 1500.0 | 79.577 | 0.10 | 0.300 | 200000.0 | 159.155 | 0.10 | 40000000.0 | 15.915 | 0.00 |
Cervix | 4.0 | 45.0 | 7.958 | 0.10 | 200.0 | 15.915 | 0.10 | 0.300 | 150000.0 | 106.103 | 0.18 | 40000000.0 | 1.592 | 0.00 |
Trachea | 2.5 | 38.0 | 7.958 | 0.10 | 400.0 | 63.662 | 0.10 | 0.300 | 50000.0 | 15.915 | 0.20 | 1000000.0 | 15.915 | 0.00 |
Tendon | 4.0 | 42.0 | 12.243 | 0.10 | 60.0 | 6.366 | 0.10 | 0.250 | 60000.0 | 318.310 | 0.22 | 20000000.0 | 1.326 | 0.00 |
Tongue | 4.0 | 50.0 | 7.958 | 0.10 | 4000.0 | 159.155 | 0.10 | 0.250 | 100000.0 | 159.155 | 0.20 | 40000000.0 | 15.915 | 0.00 |
Aorta | 4.0 | 40.0 | 8.842 | 0.10 | 50.0 | 3.183 | 0.10 | 0.250 | 100000.0 | 159.155 | 0.20 | 10000000.0 | 1.592 | 0.00 |
Lung (Deflated) | 4.0 | 45.0 | 7.958 | 0.10 | 1000.0 | 159.155 | 0.10 | 0.200 | 500000.0 | 159.155 | 0.20 | 10000000.0 | 15.915 | 0.00 |
Uterus | 4.0 | 55.0 | 7.958 | 0.10 | 800.0 | 31.831 | 0.10 | 0.200 | 300000.0 | 159.155 | 0.20 | 35000000.0 | 1.061 | 0.00 |
Bladder | 2.5 | 16.0 | 8.842 | 0.10 | 400.0 | 159.155 | 0.10 | 0.200 | 100000.0 | 159.155 | 0.20 | 10000000.0 | 15.915 | 0.00 |
Lens Nucleus | 3.0 | 32.0 | 8.842 | 0.10 | 100.0 | 10.610 | 0.20 | 0.200 | 1000.0 | 15.915 | 0.20 | 5000.0 | 15.915 | 0.00 |
Muscle | 4.0 | 50.0 | 7.234 | 0.10 | 7000.0 | 353.678 | 0.10 | 0.200 | 1200000.0 | 318.310 | 0.10 | 25000000.0 | 2.274 | 0.00 |
Cartilage | 4.0 | 38.0 | 13.263 | 0.15 | 2500.0 | 144.686 | 0.15 | 0.150 | 100000.0 | 318.310 | 0.10 | 40000000.0 | 15.915 | 0.00 |
Bone Marrow (Infiltrated) | 2.5 | 9.0 | 14.469 | 0.20 | 80.0 | 15.915 | 0.10 | 0.100 | 10000.0 | 1591.549 | 0.10 | 2000000.0 | 15.915 | 0.10 |
Bone (Cancellous) | 2.5 | 18.0 | 13.263 | 0.22 | 300.0 | 79.577 | 0.25 | 0.070 | 20000.0 | 159.155 | 0.20 | 20000000.0 | 15.915 | 0.00 |
Heart | 4.0 | 50.0 | 7.958 | 0.10 | 1200.0 | 159.155 | 0.05 | 0.050 | 450000.0 | 72.343 | 0.22 | 25000000.0 | 4.547 | 0.00 |
Kidney | 4.0 | 47.0 | 7.958 | 0.10 | 3500.0 | 198.944 | 0.22 | 0.050 | 250000.0 | 79.577 | 0.22 | 30000000.0 | 4.547 | 0.00 |
Cerebellum | 4.0 | 40.0 | 7.958 | 0.10 | 700.0 | 15.915 | 0.15 | 0.040 | 200000.0 | 106.103 | 0.22 | 45000000.0 | 5.305 | 0.00 |
Fat (Average Infiltrated) | 2.5 | 9.0 | 7.958 | 0.20 | 35.0 | 15.915 | 0.10 | 0.035 | 33000.0 | 159.155 | 0.05 | 10000000.0 | 15.915 | 0.01 |
Lung (Inflated) | 2.5 | 18.0 | 7.958 | 0.10 | 500.0 | 63.662 | 0.10 | 0.030 | 250000.0 | 159.155 | 0.20 | 40000000.0 | 7.958 | 0.00 |
Spleen | 4.0 | 48.0 | 7.958 | 0.10 | 2500.0 | 63.662 | 0.15 | 0.030 | 200000.0 | 265.258 | 0.25 | 50000000.0 | 6.366 | 0.00 |
Liver | 4.0 | 39.0 | 8.842 | 0.10 | 6000.0 | 530.516 | 0.20 | 0.020 | 50000.0 | 22.736 | 0.20 | 30000000.0 | 15.915 | 0.05 |
Brain (White Matter) | 4.0 | 32.0 | 7.958 | 0.10 | 100.0 | 7.958 | 0.10 | 0.020 | 40000.0 | 53.052 | 0.30 | 35000000.0 | 7.958 | 0.02 |
Brain (Grey Matter) | 4.0 | 45.0 | 7.958 | 0.10 | 400.0 | 15.915 | 0.15 | 0.020 | 200000.0 | 106.103 | 0.22 | 45000000.0 | 5.305 | 0.00 |
Bone (Cortical) | 2.5 | 10.0 | 13.263 | 0.20 | 180.0 | 79.577 | 0.20 | 0.020 | 5000.0 | 159.155 | 0.20 | 100000.0 | 15.915 | 0.00 |
Breast fat | 2.5 | 3.0 | 17.680 | 0.10 | 15.0 | 63.660 | 0.10 | 0.010 | 50000.0 | 454.700 | 0.10 | 20000000.0 | 13.260 | 0.00 |
Colon | 4.0 | 50.0 | 7.958 | 0.10 | 3000.0 | 159.155 | 0.20 | 0.010 | 100000.0 | 159.155 | 0.20 | 40000000.0 | 1.592 | 0.00 |
Fat (Not Infiltrated) | 2.5 | 3.0 | 7.958 | 0.20 | 15.0 | 15.915 | 0.10 | 0.010 | 33000.0 | 159.155 | 0.05 | 10000000.0 | 7.958 | 0.01 |
Nerve | 4.0 | 26.0 | 7.958 | 0.10 | 500.0 | 106.103 | 0.15 | 0.006 | 70000.0 | 15.915 | 0.20 | 40000000.0 | 15.915 | 0.00 |
Bone Marrow (Not Infiltrated)\n | 2.5 | 3.0 | 7.958 | 0.20 | 25.0 | 15.915 | 0.10 | 0.001 | 5000.0 | 1591.549 | 0.10 | 2000000.0 | 15.915 | 0.10 |
Skin (Dry) | 4.0 | 32.0 | 7.234 | 0.00 | 1100.0 | 32.481 | 0.20 | 0.000 | 0.0 | 159.155 | 0.20 | 0.0 | 15.915 | 0.20 |
Skin (Wet) | 4.0 | 39.0 | 7.958 | 0.10 | 280.0 | 79.577 | 0.00 | 0.000 | 30000.0 | 1.592 | 0.16 | 30000.0 | 1.592 | 0.20 |
Tissue Type \ Parameter | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
Sedaj smo pripravljeni, da uporabimo podatke za izrise. Npr., tvorimo niz snovi, v katere vpišemo snov, katerega model želimo izpisati.
Preden uporabimo podatke, jih moramo spremeniti iz tipa string v float. To se da narediti na več načinov, mi bomo uporabili najbolj enostavnega, z uporabo funkcije float.
Izris bo narejen za snov kri, lahko pa enostavno zamenjamo snov, npr. za "Aorta" in na grafu bo potek permitivnosti in prevodnosti za aorto.
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
snov=['Blood']
v = df.loc[snov] # najde vrstico in shrani vrednosti v niz
#print(v)
ef=float(v[1])
del1=float(v[2])
tau1=float(v[3])*1e-12
alf1=float(v[4])
del2=float(v[5])
tau2=float(v[6])*1e-9
alf2=float(v[7])
sig=float(v[8])
del3=float(v[9])
tau3=float(v[10])*1e-6
alf3=float(v[11])
del4=float(v[12])
tau4=float(v[13])*1e-3
alf4=float(v[14])
print(ef,del1, tau1, alf1,del2,tau2,alf2,del3,tau3,alf3,del4,tau4,alf4)
e0=8.854e-12
eksponent=np.linspace(1,12,100) # izdelamo 10 točk od 0 do 2000, linearno
freq=10**(eksponent)
omega=2*np.pi*freq
eps=ef+del1/(1+(1j*omega*tau1)**(1-alf1))+del2/(1+(1j*omega*tau2)**(1-alf2))
eps=eps+del3/(1+(1j*omega*tau3)**(1-alf4))+del4/(1+(1j*omega*tau4)**(1-alf4))+sig/(1j*omega*e0)
sigma=1j*eps*omega*e0
plt.xlabel('Frekvenca (Hz)')
plt.ylabel('Eps in Gama / ')
plt.loglog(freq,(eps).real, color='b',linewidth=2,label='eps.real')
plt.loglog(freq,sigma.real, color='r',linewidth=2,label='gama.real')
plt.loglog(freq,(sigma).imag, color='r',linestyle=':',label='gama.imag')
plt.grid(True,which="both")
plt.ylim(.1,1e4)
plt.legend()
4.0 56.0 8.377000000000001e-12 0.1 5200.0 1.32629e-07 0.1 0.0 0.000159155 0.2 0.0 0.015915 0.0
<matplotlib.legend.Legend at 0x7fb96ebc3f28>
Sedaj lahko dodamo še spustni seznam, v katerem bodo imena snovi. Ob izbiri pa izrišemo ustrezen graf.
Najprej si oglejmo, kako se naredi spustni seznam z uporabo ukaza widgets iz modula ipywitgets.
import ipywidgets as widgets
lista=df.index.tolist()[2:53] # iz indeksa naredim niz za izpustni seznam
#print(lista)
#Tvorim spustni seznam lista in izbranim default prikazom Aorta
w = widgets.Dropdown(
options=lista,
value='Aorta',
description='Task:',
)
# Ob spremembi izbire izpišem novo izbiro
def on_change(change):
if change['type'] == 'change' and change['name'] == 'value':
print("changed to %s" % change['new'])
print(w.value)
w.observe(on_change)
display(w)
Dropdown(description='Task:', options=('Aorta', 'Bladder', 'Blood', 'Bone (Cancellous) ', 'Bone (Cortical) ', …
changed to Colon Colon
Sedaj, ko imamo izbirni seznam, ga le še povežemo z novim izrisom grafa za izbrano snov.
import ipywidgets as widgets
lista=df.index.tolist()[2:53]
#print(lista)
w = widgets.Dropdown(
options=lista,
value='Aorta',
description='Task:',
)
def on_change(change):
if change['type'] == 'change' and change['name'] == 'value':
print("changed to %s" % change['new'])
print(w.value)
plot() # ob spremembi se izvrši funkcija plot(), ki izriše graf
def plot():
snov=w.value #dobim vrednost od izbire
v = df.loc[snov] # najde vrstico in shrani vrednosti v niz
#print(v)
ef=float(v[1])
del1=float(v[2])
tau1=float(v[3])*1e-12
alf1=float(v[4])
del2=float(v[5])
tau2=float(v[6])*1e-9
alf2=float(v[7])
sig=float(v[8])
del3=float(v[9])
tau3=float(v[10])*1e-6
alf3=float(v[11])
del4=float(v[12])
tau4=float(v[13])*1e-3
alf4=float(v[14])
e0=8.854e-12
eksponent=np.linspace(1,12,100) # izdelamo 10 točk od 0 do 2000, linearno
freq=10**(eksponent)
omega=2*np.pi*freq
eps=ef+del1/(1+(1j*omega*tau1)**(1-alf1))+del2/(1+(1j*omega*tau2)**(1-alf2))
eps=eps+del3/(1+(1j*omega*tau3)**(1-alf4))+del4/(1+(1j*omega*tau4)**(1-alf4))+sig/(1j*omega*e0)
sigma=1j*eps*omega*e0
plt.title(snov)
plt.xlabel('Frekvenca (Hz)')
plt.ylabel('Eps in Gama / ')
plt.loglog(freq,(eps).real, color='b',linewidth=3,label='eps.real')
plt.loglog(freq,sigma.real, color='r',linewidth=3,label='gama.real')
plt.loglog(freq,(sigma).imag, color='r',linestyle=':',label='gama.imag')
plt.grid(True,which="both")
plt.ylim(.1,1e4)
plt.legend()
w.observe(on_change)
display(w)
Dropdown(description='Task:', options=('Aorta', 'Bladder', 'Blood', 'Bone (Cancellous) ', 'Bone (Cortical) ', …
changed to Colon Colon
changed to Cerebellum Cerebellum
changed to Bone Marrow (Infiltrated) Bone Marrow (Infiltrated)
Graf je preveč natlačen, če bi želeli pogledati dielektrične lastnosti več snovi hkrati. Lahko pa si zamislimo drugače oblikovan graf, na katerem bi recimo prikazovali le permitivnost (realni del kompleksne dielektričnosti) ali pa le prevodnost. Poskusi izdelati kodo, kjer boš lahko izbral nekaj snovi in za te snovi izrisal omenjene grafe. (Ena od možnih rešitev je na koncu strani)
Ta zvezek se nanaša na poglavje o impedančni spektroskopiji, ki ga dopolnjuje z načinom prikaza dielektričnih lastnosti bioloških tkiv na bolj "eleganten" način. In sicer tako, da uporabi modula BeautifulSoup in Pandas za obdelavo spletne strani, iz katere izvlečemo tabelo s parametri in jo pretvorimo v Dataframe tablo in nato iz nje izvlečemo parametre za izbrano snov. Nato uporabimo še interaktivni gradnik v obliki izvlečnega seznama, s pomočjo katerega izberemo želen izris grafa.
V zvezku ne obravnavamo celovito modula BeautifulSoup in še manj Pandas, ki omogočata še marsikaj drugega. Na primer, tabela je bila v našem primeru v originalni html datoteki zapisana s html sintakso, lahko pa bi bila tudi v obliki json ali xml in podobno. Za vsak konkreten primer je potrebno pogledati html obliko dokumenta (običajno z desnim klikom miške in izbiro Page source) in v zmedi html zapisa poiskati, kako so zapisani originalni podatki.Ko pač nekaj konkretnega potrebujete, je potrebno malo pobrskati po spletu in najti usttrezno rešitev.
import ipywidgets as widgets
from IPython.display import clear_output
lista=df.index.tolist()[2:53]
#print(lista)
selector = widgets.SelectMultiple(
options=lista,
value=[lista[1]],
rows=10,
description='Variables',
disabled=False)
output = widgets.Output()
display(selector)
display(output)
def plot(snovi):
i=-1
lstyle=['-','-.','--',':']
for snov in snovi:
i=i+1
v = df.loc[snov] # najde vrstico in shrani vrednosti v niz
ef=float(v[1])
del1=float(v[2])
tau1=float(v[3])*1e-12
alf1=float(v[4])
del2=float(v[5])
tau2=float(v[6])*1e-9
alf2=float(v[7])
sig=float(v[8])
del3=float(v[9])
tau3=float(v[10])*1e-6
alf3=float(v[11])
del4=float(v[12])
tau4=float(v[13])*1e-3
alf4=float(v[14])
#print(ef,del1, tau1, alf1,del2,tau2,alf2,del3,tau3,alf3,del4,tau4,alf4)
e0=8.854e-12
eksponent=np.linspace(1,12,100) # izdelamo 10 točk od 0 do 2000, linearno
freq=10**(eksponent)
omega=2*np.pi*freq
eps=ef+del1/(1+(1j*omega*tau1)**(1-alf1))+del2/(1+(1j*omega*tau2)**(1-alf2))
eps=eps+del3/(1+(1j*omega*tau3)**(1-alf4))+del4/(1+(1j*omega*tau4)**(1-alf4))+sig/(1j*omega*e0)
sigma=1j*eps*omega*e0
plt.loglog(freq,(eps).real, color='b',linestyle=lstyle[i],linewidth=2,label='eps '+snov)
plt.loglog(freq,sigma.real, color='r',linestyle=lstyle[i],linewidth=2,label='gama' + snov)
plt.xlabel('Frekvenca (Hz)')
plt.ylabel('Eps in Gama / ')
plt.grid(True,which="both")
plt.ylim(.1,1e4)
plt.legend()
plt.title(snovi)
def multiplot(widg):
choices = widg['new']
output.clear_output(wait=False)
if len(choices)>4:
print('Ne izberi več kot štiri snovi')
else:
plot(choices)
selector.observe(multiplot, names='value')
SelectMultiple(description='Variables', index=(1,), options=('Aorta', 'Bladder', 'Blood', 'Bone (Cancellous) '…
Output()