{"id":618,"date":"2020-12-29T11:46:10","date_gmt":"2020-12-29T11:46:10","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/?post_type=chapter&#038;p=618"},"modified":"2020-12-29T18:05:10","modified_gmt":"2020-12-29T18:05:10","slug":"seeria-series","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/seeria-series\/","title":{"raw":"Seeria (Series)","rendered":"Seeria (Series)"},"content":{"raw":"Sageli on vaja anal\u00fc\u00fcsida andmetabeli \u00fcht veergu. Selleks sobib kasutada Pandase seeriat ning kasutama ei pea selleks ts\u00fckleid. Seeria (<em>Series<\/em>) on \u00fchem\u00f5\u00f5tmeline, sarnastest andmetest koosnev andmestruktuur. Seeriast v\u00f5ib m\u00f5elda kui ka veerust mingist tabelist.\r\n<h2>Seeria loomine<\/h2>\r\nPandase seeriat on v\u00f5imalik luua mitmel viisil. N\u00e4iteks v\u00f5ime kasutada selleks Pythoni \u00fchem\u00f5\u00f5tmelist j\u00e4rjendit ja kasutada tuleb Pandase mooduli funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Series<\/code>, mille argumendiks on j\u00e4rjend.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\n\r\nlst = [12, 45, 67, 8]\r\nseeria = pd.Series(lst)\r\n\r\nprint(seeria)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 0 12\r\n\u00a0 1 45\r\n\u00a0 2 67\r\n\u00a0 3 8\r\n\u00a0 dtype: int64<\/pre>\r\nN\u00e4eme, et v\u00e4ljund on tabeli moodi. Nimelt koosneb Pandase v\u00e4ljund j\u00e4rgmistest osadest: siltide veerg, v\u00e4\u00e4rtuste veerg ja andmet\u00fc\u00fcbi rida.\r\n<table class=\"aligncenter\" style=\"border: none\">\r\n<tbody>\r\n<tr style=\"height: 17px\">\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px\"><strong><span style=\"color: #666666\">Indeksid<\/span><\/strong><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px\"><span style=\"color: #38761d\"><strong>V\u00e4\u00e4rtused<\/strong><\/span><\/td>\r\n<\/tr>\r\n<tr style=\"height: 17px\">\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 150px;border-top: 2px solid #666666;border-left: 2px solid #666666\"><strong><code><span style=\"color: #666666\">0<\/span><\/code><\/strong><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px;border-top: 2px solid #38761d;border-left: 2px solid #38761d;border-right: 2px solid #38761d\"><strong><code><span style=\"color: #38761d\">12<\/span><\/code><\/strong><\/td>\r\n<\/tr>\r\n<tr style=\"height: 17px\">\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 150px;border-left: 2px solid #666666\"><strong><code><span style=\"color: #666666\">1<\/span><\/code><\/strong><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px;border-left: 2px solid #38761d;border-right: 2px solid #38761d\"><strong><code><span style=\"color: #38761d\">45<\/span><\/code><\/strong><\/td>\r\n<\/tr>\r\n<tr style=\"height: 17px\">\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 150px;border-left: 2px solid #666666\"><strong><code><span style=\"color: #666666\">2<\/span><\/code><\/strong><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px;border-left: 2px solid #38761d;border-right: 2px solid #38761d\"><strong><code><span style=\"color: #38761d\">67<\/span><\/code><\/strong><\/td>\r\n<\/tr>\r\n<tr style=\"height: 17px\">\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 150px;border-left: 2px solid #666666;border-bottom: 2px solid #666666\"><strong><code><span style=\"color: #666666\">3<\/span><\/code><\/strong><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px;border-left: 2px solid #38761d;border-right: 2px solid #38761d;border-bottom: 2px solid #38761d\"><strong><code><span style=\"color: #38761d\">8<\/span><\/code><\/strong><\/td>\r\n<\/tr>\r\n<tr style=\"height: 17px\">\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 150px;border-left: 2px solid #cc0000;border-bottom: 2px solid #cc0000\"><code><span style=\"color: #cc0000\"><strong>dtype: int64<\/strong><\/span><\/code><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px;border-right: 2px solid #cc0000;border-bottom: 2px solid #cc0000\"><strong><span style=\"color: #cc0000\">Andmet\u00fc\u00fcp<\/span><\/strong><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\nSamamoodi saab seeriat luua ka NumPy j\u00e4rjendiga (vaata NumPy materjal). Selleks installeerime ka NumPy mooduli ja impordime selle.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\nimport numpy as np\r\n\r\nlst = np.array([12, 45, 67, 8])\r\nseeria = pd.Series(lst)\r\n\r\nprint(seeria)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  0 12\r\n  1 45\r\n  2 67\r\n  3 8\r\n  dtype: int64<\/pre>\r\nTulemus on t\u00e4pselt sama. Nii seeria kui j\u00e4rjendi puhul on konkreetsele elemendile lisatud indeks, mille j\u00e4rgi saab vajadusel elemendi k\u00e4tte. Pythoni j\u00e4rjendis on elementidel indeksid 0, 1, 2, ..., n, mida kasutaja ise m\u00e4\u00e4rata ei saa. Seeria puhul on saab lisaks indeksitele kasutada ka silte, mille kasutaja ise m\u00e4\u00e4rab (ingl <em>label<\/em>), kusjuures ei pruugi sildid olla alati j\u00e4rjestikused ja isegi mitte arvud. Loome seeria, kus siltideks on \u00f5pilaste nimed. Selleks m\u00e4\u00e4rame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Series<\/code> funktsiooni parameetri <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code> v\u00e4\u00e4rtuseks vastava j\u00e4rjendi, mille elementideks on \u00f5pilaste nimed.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">punktid = [67, 45, 71, 85]\r\n\u00f5pilased = ['Guido', 'Mark', 'Tim', 'Bill']\r\nseeria = pd.Series(punktid, index=\u00f5pilased)\r\n\r\nprint(seeria)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Guido\t67\r\n  Mark \t45\r\n  Tim  \t71\r\n  Bill \t85\r\n  dtype: int64<\/pre>\r\n<span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff2cc\">\u00a0Kuigi <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code> parameetri nimi vihjaks, et tegemist oleks justkui indeksitega, siis nimetame seerias neid ikkagi siltideks, sest need ei ole programmeerimise terminoloogias indeksid, mis saavad olla ainult t\u00e4isarvud.<\/span>\r\n\r\nVastava \u00f5pilase nime kasutades saab ka v\u00e4\u00e4rtuse k\u00e4tte. Seda saab teha samamoodi nagu j\u00e4rjendist vastava indeksiga v\u00e4\u00e4rtuse v\u00f5tmist, kus indeks esitatakse j\u00e4rjendi nime j\u00e4rel nurksulgude vahel. Seeria puhul saab kasutada vastavat silti.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(seeria['Tim'])<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  71<\/pre>\r\n[h5p id=\"33\"]\r\n\r\nVaadates eelnevat n\u00e4idet v\u00f5ib seeria meenutada struktuuri poolest Pythoni s\u00f5nastikku, kus elemendid on v\u00f5ti-v\u00e4\u00e4rtus paarid. Seerias saame silte kasutada nagu s\u00f5nastikus v\u00f5tmeid, millele vastab teatud v\u00e4\u00e4rtus. Seet\u00f5ttu v\u00f5imaldab Pandase moodul seeriat luua ka s\u00f5nastiku p\u00f5hjal.\u00a0 Loome s\u00f5nastiku, kus v\u00f5tmeks on v\u00f5istleja ID ja v\u00e4\u00e4rtuseks on v\u00f5istleja nimi ning teeme sellest seeria, kasutades <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Series<\/code> funktsiooni.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">voistlejad_sonastik = {'MK12': 'Mari Karu', 'MK34': 'Joonas Saarmas', 'MK55': 'Kati Panda'}\r\nvoistlejad_seeria = pd.Series(voistlejad_sonastik)\r\n\r\nprint(voistlejad_seeria)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  MK12     Mari Karu\r\n  MK34\t   Joonas Saarmas\r\n  MK55     Kati Panda\r\n  dtype: object\r\n<\/pre>\r\nS\u00f5nastikku tasub kasutada juhul, kui on soov andmeid v\u00f5tmete ja v\u00e4\u00e4rtuste paaridena hoida ning pole vajadust edaspidise p\u00f5hjalikuma andmete t\u00f6\u00f6tluse j\u00e4rele. Andmet\u00f6\u00f6tluse jaoks sobib paremini seeria, sest sellel on rohkem funktsioone (aritmeetilised tehted, sorteerimine, filtreerimine jne). Tegevused toimuvad ka efektiivsemalt ning kood on lihtsam.\r\n\r\nVahel v\u00f5ib vaja minna kasutada seeria silte ja v\u00e4\u00e4rtusi eraldi, n\u00e4iteks joonisel v\u00f5i kui on vaja neid t\u00e4iesti eraldi kasutada. Selleks, et saaks k\u00e4tte seeria silte, saab kasutada <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code> funktsiooni. V\u00e4\u00e4rtuse saamiseks tuleb kasutada aga <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">values<\/code> funktsiooni.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">voistlejad_sonastik = {'MK12': 'Mari Karu', 'MK34': 'Joonas Saarmas', 'MK55': 'Kati Panda'}\r\nvoistlejad_seeria = pd.Series(voistlejad_sonastik)\r\n\r\nprint(\"Sildid: \", voistlejad_seeria.index)\r\nprint(\"V\u00e4\u00e4rtused: \", voistlejad_seeria.values)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Sildid:\u00a0 Index(['MK12', 'MK34', 'MK55'], dtype='object')\r\n  V\u00e4\u00e4rtused:\u00a0 ['Mari Karu' 'Joonas Saarmas' 'Kati Panda']<\/pre>\r\nErandjuhuna saab seeria luua nii, et loomisel on lisatud vaid \u00fcks v\u00e4\u00e4rtus ja n\u00e4iteks 4 silti. Sel juhul korratakse seda \u00fchte v\u00e4\u00e4rtust 4 korda ning luuakse 4 sama v\u00e4\u00e4rtusega elementi.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\n\r\nseeria = pd.Series(7, index = [0, 2, 4, 6])\r\nprint(seeria)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  0 \u00a0 7\r\n  2 \u00a0 7\r\n  4 \u00a0 7\r\n  6 \u00a0 7\r\n  dtype: int64<\/pre>\r\nJ\u00e4rgmine tabel kirjeldab, mis t\u00fc\u00fcpi v\u00e4\u00e4rtused saab Series funktsiooni m\u00f5nedele parameetrile anda ja mida need t\u00e4hendavad.\r\n<table class=\"grid aligncenter\">\r\n<tbody>\r\n<tr>\r\n<td style=\"text-align: center\">Parameeter<\/td>\r\n<td style=\"text-align: center\">Selgitus<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">data<\/code><\/td>\r\n<td>Andmed v\u00f5ivad olla s\u00f5nastiku, j\u00e4rjendi v\u00f5i konstandi (\u00fcks element) kujul. N\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">pd.Series({'Mari': '12', 'Karmo': '15', 'Malle': '20', ...})<\/code> v\u00f5i <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">pd.Series(['punane', 'kollane', 'sinine', ...])<\/code> v\u00f5i <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">pd.Series('a', ...)<\/code><\/td>\r\n<\/tr>\r\n<tr>\r\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code><\/td>\r\n<td>Indeksite (ka siltide) j\u00e4rjend. Vaikimisi m\u00e4\u00e4ratakse siltideks arvud 0, 1, 2,..., n-1, kus n on elementide arv parameetriga <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">data<\/code> lisatud andmestruktuuris.<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">dtype<\/code><\/td>\r\n<td>Andmete t\u00fc\u00fcp, mida seerias hoitakse. Vaikimisi tuvastatakse t\u00fc\u00fcp antud andmetest. N\u00e4iteks kui hoitakse seerias ujukomaarve, siis vaikimisi m\u00e4\u00e4ratakse t\u00fc\u00fcbiks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">float<\/code>.<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">name<\/code><\/td>\r\n<td>Seeriale nime lisamine, nt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">name = '\u00d5pilased'<\/code>. Sellest v\u00f5ib m\u00f5elda kui veeru pealkirjast.<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<h2>Seeria andmet\u00fc\u00fcbi muutmine<\/h2>\r\nN\u00e4itena vaatame seeriat, milles hoitakse 1. klassi \u00f5pilaste arvusid klasside kaupa. Siltideks on klassid, mille arv peab olema v\u00f5rdne andmestruktuuri elementide arvuga, kus hoitakse \u00f5pilaste arve. Olgu meil 4 erinevat klassi. Lisame seeriale ka nime parameetri <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">name<\/code> abil.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">andmed = [24, 0, 21, 22]\r\nklassid = ['1a', '1b', '1c', '1d']\r\n\r\nopilaste_arv = pd.Series(andmed, index=klassid, name='1. klassi \u00f5pilaste arv')\r\n\r\nprint(opilaste_arv)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  1a 24\r\n  1b 0\r\n  1c 21\r\n  1d 22\r\n  Name: 1. klassi \u00f5pilaste arv, dtype: int64<\/pre>\r\nAndmete t\u00fc\u00fcbiks on vaikimisi m\u00e4\u00e4ratud <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">int64<\/code>, sest \u00f5pilaste arvude n\u00e4ol on tegemist t\u00e4isarvudega.\r\n\r\nVajadusel saab seeria andmet\u00fc\u00fcpi m\u00e4\u00e4rata selle loomisel. Selleks tuleb <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Series<\/code> funktsioonis lisada parameeter <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">dtype<\/code>, mille v\u00e4\u00e4rtuseks on vastav t\u00fc\u00fcp. Loome eelmises n\u00e4ites kasutatud seeria uuesti, kuid seekord m\u00e4\u00e4rame andmed ujukomaarvu t\u00fc\u00fcpi. Parameetri dtype v\u00e4\u00e4rtuseks tuleb anda s\u00f5nena ujukomaarvu t\u00fc\u00fcp (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">'float64'<\/code>).\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">andmed = [24, 0, 21, 22]\r\nklassid = ['1a', '1b', '1c', '1d']\r\n\r\nopilaste_arv = pd.Series(andmed, index=klassid, dtype='float64', name='1. klassi \u00f5pilaste arv')\r\n\r\nprint(opilaste_arv)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  1a 24\r\n  1b 0\r\n  1c 21\r\n  1d 22\r\n  Name: 1. klassi \u00f5pilaste arv, dtype: float64<\/pre>\r\nN\u00e4eme, et v\u00e4ljundis on andmet\u00fc\u00fcp ujukomaarv. Kui on vaja aga muuta olemasoleva seeria t\u00fc\u00fcpi, siis selleks saab kasutada funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">astype<\/code>, mille argumendiks on vastav t\u00fc\u00fcp. Muudame eelmise n\u00e4ites kasutatud seeria t\u00f5ev\u00e4\u00e4rtus t\u00fc\u00fcpi.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">opilaste_arv = pd.Series(andmed, index=klassid, name='1. klassi \u00f5pilaste arv')\r\nopilased_bool = opilaste_arv.astype(bool)\r\n\r\nprint(opilased_bool)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  1a \u00a0 True\r\n  1b \u00a0 False\r\n  1c \u00a0 True\r\n  1d \u00a0 True\r\n  Name: 1. klassi \u00f5pilaste arv, dtype: bool<\/pre>\r\n<span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff2cc\">\u00a0Arv 0 on alati <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">False<\/code>, \u00fclej\u00e4\u00e4nud arvud on alati <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">True<\/code>.<\/span>\r\n\r\nJ\u00e4rgnevas tabelis on toodud m\u00f5ned k\u00f5ige tavalisemad Pandase andmet\u00fc\u00fcbid.\r\n<table class=\"grid aligncenter\">\r\n<tbody>\r\n<tr>\r\n<td style=\"text-align: center\"><strong>T\u00fc\u00fcp<\/strong><\/td>\r\n<td style=\"text-align: center\"><strong>T\u00e4hendus<\/strong><\/td>\r\n<\/tr>\r\n<tr>\r\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">object<\/code><\/td>\r\n<td>K\u00f5ige \u00fcldisem andmet\u00fc\u00fcp, mida kasutatakse tavaliselt siis, kui andmed on segat\u00fc\u00fcpi, n\u00e4iteks on nii arve kui ka teksti.<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">int64<\/code><\/td>\r\n<td>T\u00e4isarvud<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">float64<\/code><\/td>\r\n<td>Ujukomaarvud<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">datetime64<\/code><\/td>\r\n<td>Kuup\u00e4evade ja kellaaegade t\u00fc\u00fcp<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">bool<\/code><\/td>\r\n<td>T\u00f5ev\u00e4\u00e4rtust\u00fc\u00fcp<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">category<\/code><\/td>\r\n<td>Kategooriliste tunnuste v\u00e4\u00e4rtuste jaoks m\u00f5eldud t\u00fc\u00fcp. Kategoorilised tunnused v\u00f5ivad olla n\u00e4iteks sugu, silmade v\u00e4rv ja 5-palli skaalal antud v\u00e4\u00e4rtused. Tegemist on sisuliselt s\u00f5nej\u00e4rjendiga, milles on fikseeritud arv elemente.<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n[h5p id=\"34\"]\r\n<h2>Seeria suurus<\/h2>\r\nJ\u00e4rgmisena vaatame mitu klassi on seerias, selleks kasutame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">size<\/code> funktsiooni.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">andmed = [24, 23, 21, 22, 28, 26, 30, 28, 31, 35, 33, 32, 29, 27, 25, 30, 26, 31, 22]\r\nklassid = ['1a', '1b', '2a', '3a', '3b', '4a', '4b', '5a', '6a', '6b', '7a', '8a', '9a', '10 reaal', '10 sotsiaal', '11 reaal', '11 sotsiaal', '12 reaal', '12 sotsiaal']\r\n\r\nopilaste_arv = pd.Series(andmed, index = klassid, name = '\u00d5pilaste arv klassis')\r\n\r\nprint(opilaste_arv.size)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0\u00a019<\/pre>","rendered":"<p>Sageli on vaja anal\u00fc\u00fcsida andmetabeli \u00fcht veergu. Selleks sobib kasutada Pandase seeriat ning kasutama ei pea selleks ts\u00fckleid. Seeria (<em>Series<\/em>) on \u00fchem\u00f5\u00f5tmeline, sarnastest andmetest koosnev andmestruktuur. Seeriast v\u00f5ib m\u00f5elda kui ka veerust mingist tabelist.<\/p>\n<h2>Seeria loomine<\/h2>\n<p>Pandase seeriat on v\u00f5imalik luua mitmel viisil. N\u00e4iteks v\u00f5ime kasutada selleks Pythoni \u00fchem\u00f5\u00f5tmelist j\u00e4rjendit ja kasutada tuleb Pandase mooduli funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Series<\/code>, mille argumendiks on j\u00e4rjend.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\n\r\nlst = [12, 45, 67, 8]\r\nseeria = pd.Series(lst)\r\n\r\nprint(seeria)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0 0 12\r\n\u00a0 1 45\r\n\u00a0 2 67\r\n\u00a0 3 8\r\n\u00a0 dtype: int64<\/pre>\n<p>N\u00e4eme, et v\u00e4ljund on tabeli moodi. Nimelt koosneb Pandase v\u00e4ljund j\u00e4rgmistest osadest: siltide veerg, v\u00e4\u00e4rtuste veerg ja andmet\u00fc\u00fcbi rida.<\/p>\n<table class=\"aligncenter\" style=\"border: none\">\n<tbody>\n<tr style=\"height: 17px\">\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px\"><strong><span style=\"color: #666666\">Indeksid<\/span><\/strong><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px\"><span style=\"color: #38761d\"><strong>V\u00e4\u00e4rtused<\/strong><\/span><\/td>\n<\/tr>\n<tr style=\"height: 17px\">\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 150px;border-top: 2px solid #666666;border-left: 2px solid #666666\"><strong><code><span style=\"color: #666666\">0<\/span><\/code><\/strong><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px;border-top: 2px solid #38761d;border-left: 2px solid #38761d;border-right: 2px solid #38761d\"><strong><code><span style=\"color: #38761d\">12<\/span><\/code><\/strong><\/td>\n<\/tr>\n<tr style=\"height: 17px\">\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 150px;border-left: 2px solid #666666\"><strong><code><span style=\"color: #666666\">1<\/span><\/code><\/strong><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px;border-left: 2px solid #38761d;border-right: 2px solid #38761d\"><strong><code><span style=\"color: #38761d\">45<\/span><\/code><\/strong><\/td>\n<\/tr>\n<tr style=\"height: 17px\">\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 150px;border-left: 2px solid #666666\"><strong><code><span style=\"color: #666666\">2<\/span><\/code><\/strong><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px;border-left: 2px solid #38761d;border-right: 2px solid #38761d\"><strong><code><span style=\"color: #38761d\">67<\/span><\/code><\/strong><\/td>\n<\/tr>\n<tr style=\"height: 17px\">\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 150px;border-left: 2px solid #666666;border-bottom: 2px solid #666666\"><strong><code><span style=\"color: #666666\">3<\/span><\/code><\/strong><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px;border-left: 2px solid #38761d;border-right: 2px solid #38761d;border-bottom: 2px solid #38761d\"><strong><code><span style=\"color: #38761d\">8<\/span><\/code><\/strong><\/td>\n<\/tr>\n<tr style=\"height: 17px\">\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 150px;border-left: 2px solid #cc0000;border-bottom: 2px solid #cc0000\"><code><span style=\"color: #cc0000\"><strong>dtype: int64<\/strong><\/span><\/code><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 17px;width: 100px;border-right: 2px solid #cc0000;border-bottom: 2px solid #cc0000\"><strong><span style=\"color: #cc0000\">Andmet\u00fc\u00fcp<\/span><\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Samamoodi saab seeriat luua ka NumPy j\u00e4rjendiga (vaata NumPy materjal). Selleks installeerime ka NumPy mooduli ja impordime selle.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\nimport numpy as np\r\n\r\nlst = np.array([12, 45, 67, 8])\r\nseeria = pd.Series(lst)\r\n\r\nprint(seeria)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  0 12\r\n  1 45\r\n  2 67\r\n  3 8\r\n  dtype: int64<\/pre>\n<p>Tulemus on t\u00e4pselt sama. Nii seeria kui j\u00e4rjendi puhul on konkreetsele elemendile lisatud indeks, mille j\u00e4rgi saab vajadusel elemendi k\u00e4tte. Pythoni j\u00e4rjendis on elementidel indeksid 0, 1, 2, &#8230;, n, mida kasutaja ise m\u00e4\u00e4rata ei saa. Seeria puhul on saab lisaks indeksitele kasutada ka silte, mille kasutaja ise m\u00e4\u00e4rab (ingl <em>label<\/em>), kusjuures ei pruugi sildid olla alati j\u00e4rjestikused ja isegi mitte arvud. Loome seeria, kus siltideks on \u00f5pilaste nimed. Selleks m\u00e4\u00e4rame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Series<\/code> funktsiooni parameetri <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code> v\u00e4\u00e4rtuseks vastava j\u00e4rjendi, mille elementideks on \u00f5pilaste nimed.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">punktid = [67, 45, 71, 85]\r\n\u00f5pilased = ['Guido', 'Mark', 'Tim', 'Bill']\r\nseeria = pd.Series(punktid, index=\u00f5pilased)\r\n\r\nprint(seeria)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Guido\t67\r\n  Mark \t45\r\n  Tim  \t71\r\n  Bill \t85\r\n  dtype: int64<\/pre>\n<p><span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff2cc\">\u00a0Kuigi <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code> parameetri nimi vihjaks, et tegemist oleks justkui indeksitega, siis nimetame seerias neid ikkagi siltideks, sest need ei ole programmeerimise terminoloogias indeksid, mis saavad olla ainult t\u00e4isarvud.<\/span><\/p>\n<p>Vastava \u00f5pilase nime kasutades saab ka v\u00e4\u00e4rtuse k\u00e4tte. Seda saab teha samamoodi nagu j\u00e4rjendist vastava indeksiga v\u00e4\u00e4rtuse v\u00f5tmist, kus indeks esitatakse j\u00e4rjendi nime j\u00e4rel nurksulgude vahel. Seeria puhul saab kasutada vastavat silti.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(seeria['Tim'])<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  71<\/pre>\n<div id=\"h5p-33\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-33\" class=\"h5p-iframe\" data-content-id=\"33\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Pandas seeria 1\"><\/iframe><\/div>\n<\/div>\n<p>Vaadates eelnevat n\u00e4idet v\u00f5ib seeria meenutada struktuuri poolest Pythoni s\u00f5nastikku, kus elemendid on v\u00f5ti-v\u00e4\u00e4rtus paarid. Seerias saame silte kasutada nagu s\u00f5nastikus v\u00f5tmeid, millele vastab teatud v\u00e4\u00e4rtus. Seet\u00f5ttu v\u00f5imaldab Pandase moodul seeriat luua ka s\u00f5nastiku p\u00f5hjal.\u00a0 Loome s\u00f5nastiku, kus v\u00f5tmeks on v\u00f5istleja ID ja v\u00e4\u00e4rtuseks on v\u00f5istleja nimi ning teeme sellest seeria, kasutades <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Series<\/code> funktsiooni.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">voistlejad_sonastik = {'MK12': 'Mari Karu', 'MK34': 'Joonas Saarmas', 'MK55': 'Kati Panda'}\r\nvoistlejad_seeria = pd.Series(voistlejad_sonastik)\r\n\r\nprint(voistlejad_seeria)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  MK12     Mari Karu\r\n  MK34\t   Joonas Saarmas\r\n  MK55     Kati Panda\r\n  dtype: object\r\n<\/pre>\n<p>S\u00f5nastikku tasub kasutada juhul, kui on soov andmeid v\u00f5tmete ja v\u00e4\u00e4rtuste paaridena hoida ning pole vajadust edaspidise p\u00f5hjalikuma andmete t\u00f6\u00f6tluse j\u00e4rele. Andmet\u00f6\u00f6tluse jaoks sobib paremini seeria, sest sellel on rohkem funktsioone (aritmeetilised tehted, sorteerimine, filtreerimine jne). Tegevused toimuvad ka efektiivsemalt ning kood on lihtsam.<\/p>\n<p>Vahel v\u00f5ib vaja minna kasutada seeria silte ja v\u00e4\u00e4rtusi eraldi, n\u00e4iteks joonisel v\u00f5i kui on vaja neid t\u00e4iesti eraldi kasutada. Selleks, et saaks k\u00e4tte seeria silte, saab kasutada <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code> funktsiooni. V\u00e4\u00e4rtuse saamiseks tuleb kasutada aga <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">values<\/code> funktsiooni.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">voistlejad_sonastik = {'MK12': 'Mari Karu', 'MK34': 'Joonas Saarmas', 'MK55': 'Kati Panda'}\r\nvoistlejad_seeria = pd.Series(voistlejad_sonastik)\r\n\r\nprint(\"Sildid: \", voistlejad_seeria.index)\r\nprint(\"V\u00e4\u00e4rtused: \", voistlejad_seeria.values)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Sildid:\u00a0 Index(['MK12', 'MK34', 'MK55'], dtype='object')\r\n  V\u00e4\u00e4rtused:\u00a0 ['Mari Karu' 'Joonas Saarmas' 'Kati Panda']<\/pre>\n<p>Erandjuhuna saab seeria luua nii, et loomisel on lisatud vaid \u00fcks v\u00e4\u00e4rtus ja n\u00e4iteks 4 silti. Sel juhul korratakse seda \u00fchte v\u00e4\u00e4rtust 4 korda ning luuakse 4 sama v\u00e4\u00e4rtusega elementi.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\n\r\nseeria = pd.Series(7, index = [0, 2, 4, 6])\r\nprint(seeria)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  0 \u00a0 7\r\n  2 \u00a0 7\r\n  4 \u00a0 7\r\n  6 \u00a0 7\r\n  dtype: int64<\/pre>\n<p>J\u00e4rgmine tabel kirjeldab, mis t\u00fc\u00fcpi v\u00e4\u00e4rtused saab Series funktsiooni m\u00f5nedele parameetrile anda ja mida need t\u00e4hendavad.<\/p>\n<table class=\"grid aligncenter\">\n<tbody>\n<tr>\n<td style=\"text-align: center\">Parameeter<\/td>\n<td style=\"text-align: center\">Selgitus<\/td>\n<\/tr>\n<tr>\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">data<\/code><\/td>\n<td>Andmed v\u00f5ivad olla s\u00f5nastiku, j\u00e4rjendi v\u00f5i konstandi (\u00fcks element) kujul. N\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">pd.Series({'Mari': '12', 'Karmo': '15', 'Malle': '20', ...})<\/code> v\u00f5i <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">pd.Series(['punane', 'kollane', 'sinine', ...])<\/code> v\u00f5i <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">pd.Series('a', ...)<\/code><\/td>\n<\/tr>\n<tr>\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code><\/td>\n<td>Indeksite (ka siltide) j\u00e4rjend. Vaikimisi m\u00e4\u00e4ratakse siltideks arvud 0, 1, 2,&#8230;, n-1, kus n on elementide arv parameetriga <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">data<\/code> lisatud andmestruktuuris.<\/td>\n<\/tr>\n<tr>\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">dtype<\/code><\/td>\n<td>Andmete t\u00fc\u00fcp, mida seerias hoitakse. Vaikimisi tuvastatakse t\u00fc\u00fcp antud andmetest. N\u00e4iteks kui hoitakse seerias ujukomaarve, siis vaikimisi m\u00e4\u00e4ratakse t\u00fc\u00fcbiks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">float<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">name<\/code><\/td>\n<td>Seeriale nime lisamine, nt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">name = '\u00d5pilased'<\/code>. Sellest v\u00f5ib m\u00f5elda kui veeru pealkirjast.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Seeria andmet\u00fc\u00fcbi muutmine<\/h2>\n<p>N\u00e4itena vaatame seeriat, milles hoitakse 1. klassi \u00f5pilaste arvusid klasside kaupa. Siltideks on klassid, mille arv peab olema v\u00f5rdne andmestruktuuri elementide arvuga, kus hoitakse \u00f5pilaste arve. Olgu meil 4 erinevat klassi. Lisame seeriale ka nime parameetri <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">name<\/code> abil.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">andmed = [24, 0, 21, 22]\r\nklassid = ['1a', '1b', '1c', '1d']\r\n\r\nopilaste_arv = pd.Series(andmed, index=klassid, name='1. klassi \u00f5pilaste arv')\r\n\r\nprint(opilaste_arv)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  1a 24\r\n  1b 0\r\n  1c 21\r\n  1d 22\r\n  Name: 1. klassi \u00f5pilaste arv, dtype: int64<\/pre>\n<p>Andmete t\u00fc\u00fcbiks on vaikimisi m\u00e4\u00e4ratud <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">int64<\/code>, sest \u00f5pilaste arvude n\u00e4ol on tegemist t\u00e4isarvudega.<\/p>\n<p>Vajadusel saab seeria andmet\u00fc\u00fcpi m\u00e4\u00e4rata selle loomisel. Selleks tuleb <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Series<\/code> funktsioonis lisada parameeter <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">dtype<\/code>, mille v\u00e4\u00e4rtuseks on vastav t\u00fc\u00fcp. Loome eelmises n\u00e4ites kasutatud seeria uuesti, kuid seekord m\u00e4\u00e4rame andmed ujukomaarvu t\u00fc\u00fcpi. Parameetri dtype v\u00e4\u00e4rtuseks tuleb anda s\u00f5nena ujukomaarvu t\u00fc\u00fcp (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">'float64'<\/code>).<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">andmed = [24, 0, 21, 22]\r\nklassid = ['1a', '1b', '1c', '1d']\r\n\r\nopilaste_arv = pd.Series(andmed, index=klassid, dtype='float64', name='1. klassi \u00f5pilaste arv')\r\n\r\nprint(opilaste_arv)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  1a 24\r\n  1b 0\r\n  1c 21\r\n  1d 22\r\n  Name: 1. klassi \u00f5pilaste arv, dtype: float64<\/pre>\n<p>N\u00e4eme, et v\u00e4ljundis on andmet\u00fc\u00fcp ujukomaarv. Kui on vaja aga muuta olemasoleva seeria t\u00fc\u00fcpi, siis selleks saab kasutada funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">astype<\/code>, mille argumendiks on vastav t\u00fc\u00fcp. Muudame eelmise n\u00e4ites kasutatud seeria t\u00f5ev\u00e4\u00e4rtus t\u00fc\u00fcpi.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">opilaste_arv = pd.Series(andmed, index=klassid, name='1. klassi \u00f5pilaste arv')\r\nopilased_bool = opilaste_arv.astype(bool)\r\n\r\nprint(opilased_bool)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  1a \u00a0 True\r\n  1b \u00a0 False\r\n  1c \u00a0 True\r\n  1d \u00a0 True\r\n  Name: 1. klassi \u00f5pilaste arv, dtype: bool<\/pre>\n<p><span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff2cc\">\u00a0Arv 0 on alati <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">False<\/code>, \u00fclej\u00e4\u00e4nud arvud on alati <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">True<\/code>.<\/span><\/p>\n<p>J\u00e4rgnevas tabelis on toodud m\u00f5ned k\u00f5ige tavalisemad Pandase andmet\u00fc\u00fcbid.<\/p>\n<table class=\"grid aligncenter\">\n<tbody>\n<tr>\n<td style=\"text-align: center\"><strong>T\u00fc\u00fcp<\/strong><\/td>\n<td style=\"text-align: center\"><strong>T\u00e4hendus<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">object<\/code><\/td>\n<td>K\u00f5ige \u00fcldisem andmet\u00fc\u00fcp, mida kasutatakse tavaliselt siis, kui andmed on segat\u00fc\u00fcpi, n\u00e4iteks on nii arve kui ka teksti.<\/td>\n<\/tr>\n<tr>\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">int64<\/code><\/td>\n<td>T\u00e4isarvud<\/td>\n<\/tr>\n<tr>\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">float64<\/code><\/td>\n<td>Ujukomaarvud<\/td>\n<\/tr>\n<tr>\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">datetime64<\/code><\/td>\n<td>Kuup\u00e4evade ja kellaaegade t\u00fc\u00fcp<\/td>\n<\/tr>\n<tr>\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">bool<\/code><\/td>\n<td>T\u00f5ev\u00e4\u00e4rtust\u00fc\u00fcp<\/td>\n<\/tr>\n<tr>\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">category<\/code><\/td>\n<td>Kategooriliste tunnuste v\u00e4\u00e4rtuste jaoks m\u00f5eldud t\u00fc\u00fcp. Kategoorilised tunnused v\u00f5ivad olla n\u00e4iteks sugu, silmade v\u00e4rv ja 5-palli skaalal antud v\u00e4\u00e4rtused. Tegemist on sisuliselt s\u00f5nej\u00e4rjendiga, milles on fikseeritud arv elemente.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div id=\"h5p-34\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-34\" class=\"h5p-iframe\" data-content-id=\"34\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Pandase seeria 2\"><\/iframe><\/div>\n<\/div>\n<h2>Seeria suurus<\/h2>\n<p>J\u00e4rgmisena vaatame mitu klassi on seerias, selleks kasutame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">size<\/code> funktsiooni.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">andmed = [24, 23, 21, 22, 28, 26, 30, 28, 31, 35, 33, 32, 29, 27, 25, 30, 26, 31, 22]\r\nklassid = ['1a', '1b', '2a', '3a', '3b', '4a', '4b', '5a', '6a', '6b', '7a', '8a', '9a', '10 reaal', '10 sotsiaal', '11 reaal', '11 sotsiaal', '12 reaal', '12 sotsiaal']\r\n\r\nopilaste_arv = pd.Series(andmed, index = klassid, name = '\u00d5pilaste arv klassis')\r\n\r\nprint(opilaste_arv.size)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n\u00a0\u00a019<\/pre>\n","protected":false},"author":16,"menu_order":2,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-618","chapter","type-chapter","status-publish","hentry"],"part":93,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/users\/16"}],"version-history":[{"count":10,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/618\/revisions"}],"predecessor-version":[{"id":731,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/618\/revisions\/731"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/parts\/93"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/618\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=618"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=618"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=618"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}