{"id":668,"date":"2020-12-29T14:19:20","date_gmt":"2020-12-29T14:19:20","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/?post_type=chapter&#038;p=668"},"modified":"2020-12-29T14:50:27","modified_gmt":"2020-12-29T14:50:27","slug":"andmefreim-dataframe","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/andmefreim-dataframe\/","title":{"raw":"Andmefreim (DataFrame)","rendered":"Andmefreim (DataFrame)"},"content":{"raw":"Juba seeria abil saab andmeid teatud m\u00e4\u00e4ral t\u00f6\u00f6delda ja illustreerida. Veelgi p\u00f5nevamaid v\u00f5imalusi pakub aga andmefreim (<em>DataFrame<\/em>), mis on sisuliselt andmetabel. Andmefreimist v\u00f5ib m\u00f5elda kui ka mitmest seeriast koosnevast kogumist, mis on omavahel \u00fchendatud. Seeria t\u00e4histab andmefreimis (<em>DataFrame<\/em>) \u00fchte veergu.\r\n<table class=\"aligncenter\" style=\"border: none;height: 100px\">\r\n<tbody>\r\n<tr style=\"height: 58px\">\r\n<td style=\"text-align: center;vertical-align: middle;height: 58px;width: 49.0625px\"><\/td>\r\n<td style=\"height: 58px;width: 192.062px;text-align: center;vertical-align: middle\"><strong>Veerg 1<\/strong>\r\n<strong>(Seeria 1)<\/strong><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 58px;width: 198.062px;border-top: 2px solid #1155cc;border-left: 2px solid #1155cc;border-right: 2px solid #1155cc\"><strong>Veerg 2 <\/strong>\r\n<strong>(Seeria 2)<\/strong><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 58px;width: 199.062px\"><strong>Veerg 3 <\/strong>\r\n<strong style=\"font-family: inherit;font-size: inherit\">(Seeria 3)<\/strong><\/td>\r\n<\/tr>\r\n<tr style=\"height: 14px\">\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 49.0625px\"><strong>0<\/strong><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 192.062px;background-color: #efefef\"><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 198.062px;background-color: #efefef;border-left: 2px solid #1155cc;border-right: 2px solid #1155cc\"><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 199.062px;background-color: #efefef\"><\/td>\r\n<\/tr>\r\n<tr style=\"height: 14px\">\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 49.0625px;border-top: 2px solid #ff9900;border-left: 2px solid #ff9900;border-bottom: 2px solid #ff9900\"><strong>1<\/strong><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 192.062px;background-color: #efefef;border-top: 2px solid #ff9900;border-bottom: 2px solid #ff9900\"><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 198.062px;background-color: #efefef;border-top: 2px solid #ff9900;border-bottom: 2px solid #ff9900;border-left: 2px solid #1155cc;border-right: 2px solid #1155cc\"><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 199.062px;background-color: #efefef;border-top: 2px solid #ff9900;border-bottom: 2px solid #ff9900;border-right: 2px solid #ff9900\"><\/td>\r\n<\/tr>\r\n<tr style=\"height: 14px\">\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 49.0625px\"><strong>2<\/strong><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 192.062px;background-color: #efefef\"><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 198.062px;background-color: #efefef;border-left: 2px solid #1155cc;border-right: 2px solid #1155cc;border-bottom: 2px solid #1155cc\"><\/td>\r\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 199.062px;background-color: #efefef\"><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\nAndmefreimis v\u00f5ivad olla erinevat t\u00fc\u00fcpi andmed ja selle suurust saab muuta. Ridadele ja veergudele saab rakendada aritmeetilisi funktsioone - n\u00e4iteks saab veergusid liita, lahutada, korrutada ja jagada ning arvutada rea v\u00f5i veeru kaupa selle maksimumi, keskmist jpm.\r\n<h2>Andmefreimi loomine<\/h2>\r\nPandase andmefreimi on v\u00f5imalik luua mitmel viisil. N\u00e4iteks j\u00e4rjendite, s\u00f5nastiku v\u00f5i s\u00f5nastiku, mis koosneb j\u00e4rjenditest, p\u00f5hjal.\r\n\r\nLoome andmefreimi s\u00f5nastiku, mille v\u00e4\u00e4rtused on j\u00e4rjendid, p\u00f5hjal. Olgu meil s\u00f5nastik, milles on \u00f5pilaste \u00f5ppeainete hinded. S\u00f5nastiku v\u00f5tmeteks on veerupealkirjad ja v\u00e4\u00e4rtusteks on hinded j\u00e4rjendis. Andmefreimi loomiseks tuleb kasutada funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">DataFrame<\/code>, mille argumendiks on s\u00f5nastik.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\n\r\nsonastik = {'Nimi': ['Malle', 'Saara', 'Kusti', 'Aksel'],\r\n'Matemaatika': [4, 5, 3, 4],\r\n'Programmeerimine': [4, 5, 5, 4]}\r\n\r\nhinded = pd.DataFrame(sonastik)\r\n\r\nprint(hinded)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n      Nimi  Matemaatika  Programmeerimine\r\n  0  Malle            4                 4\r\n  1  Saara            5                 5\r\n  2  Kusti            3                 5\r\n  3  Aksel            4                 4\r\n<\/pre>\r\nSamuti v\u00f5ib andmefreimi luua Pythoni kahem\u00f5\u00f5tmeliste j\u00e4rjendite abil, sest sisuliselt on needki tabelid. Loome kahem\u00f5\u00f5tmelise j\u00e4rjendi, milles on andmed ja veergude pealkirjade jaoks kasutame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">DataFrame<\/code> funktsiooni parameetrit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">columns<\/code>, mille v\u00e4\u00e4rtuseks anname veergude pealkirjade j\u00e4rjendi. Juhul kui j\u00e4tame veergude pealkirjad defineerimata, siis vaikimisi lisatakse veergudele indeksid alates 0-st.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">lst = [['Malle', 4, 4],\r\n       ['Saara', 5, 5],\r\n       ['Kusti', 3, 5],\r\n       ['Aksel', 4, 4]]\r\n\r\nhinded = pd.DataFrame(lst, columns=['Nimi', 'Matemaatika', 'Programmeerimine'])\r\n\r\nprint(hinded)\r\n<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n      Nimi  Matemaatika  Programmeerimine\r\n  0  Malle            4                 4\r\n  1  Saara            5                 5\r\n  2  Kusti            3                 5\r\n  3  Aksel            4                 4\r\n<\/pre>\r\nKuna andmefreimist v\u00f5ib m\u00f5elda kui omavahel \u00fchendatud seeriatest, siis v\u00f5ib andmefreimi luua ka seeriate abil. Selleks, et erinevaid seeriad omavahel \u00fchendada kasutame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">concat<\/code> funktsiooni, mille argumendiks on seeriate j\u00e4rjend. Lisaks tuleb kasutada <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">axis<\/code> parameetrit, mis m\u00e4\u00e4rab kas seeriad \u00fchendatakse ridade (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">axis=0<\/code>, vaikev\u00e4\u00e4rtus) v\u00f5i veergude j\u00e4rgi (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">axis=1<\/code>). J\u00e4rgmises n\u00e4ites \u00fchendame seeriad veergude j\u00e4rgi ja lisame igale seeriale ka selle nime <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">name<\/code> parameetrit kasutades, mis on sisuliselt veeru pealkiri tabelis.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">veerg_1 = pd.Series(['Malle', 'Saara', 'Kusti', 'Aksel'], name='Nimi')\r\nveerg_2 = pd.Series([4, 5, 3, 4], name='Matemaatika')\r\nveerg_3 = pd.Series([4, 5, 5, 4], name='Programmeerimine')\r\n\r\nveerud = [veerg_1, veerg_2, veerg_3]\r\n\r\nhinded = pd.concat(veerud, axis=1)\r\n\r\nprint(hinded)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n      Nimi  Matemaatika  Programmeerimine\r\n  0  Malle            4                 4\r\n  1  Saara            5                 5\r\n  2  Kusti            3                 5\r\n  3  Aksel            4                 4<\/pre>\r\nV\u00f5imalusi, kuidas andmefreimi luua on veelgi, n\u00e4iteks s\u00f5nastiku p\u00f5hjal, mille v\u00e4\u00e4rtusteks on omakorda seeriad v\u00f5i n\u00e4iteks ka j\u00e4rjendi p\u00f5hjal, mille elementideks kaheelemendilised ennikud. Oluline on, et kasutatav andmestruktuuri oleks v\u00f5imalik ts\u00fckliliselt l\u00e4bida. Andmete anal\u00fc\u00fcsimisel loetakse andmed tavaliselt failist, t\u00fc\u00fcpiliselt CSV failidest. Andmefreimi on v\u00f5imalik ka otse luua CSV faili sisu p\u00f5hjal (loe t\u00e4psemalt peat\u00fckist \u201cTeatrik\u00fclastuse n\u00e4ide\u201d v\u00f5i \u201cCOVID-19 n\u00e4ide\u201d).\r\n\r\nJ\u00e4rgnevas tabelis on esitatud DataFrame funktsiooni parameetrid ja nende selgitused. Andmefreimi puhul ei pea k\u00f5iki parameetreid defineerimisel kasutama, parameetri \u00e4raj\u00e4tmisel kasutatakse selle vaikimisi m\u00e4\u00e4ratud v\u00e4\u00e4rtust.\r\n<div align=\"left\">\r\n<table class=\"grid aligncenter\" style=\"height: 99px\">\r\n<tbody>\r\n<tr style=\"height: 14px\">\r\n<td style=\"height: 14px;width: 78.0625px;text-align: center;vertical-align: middle\"><strong>Parameeter<\/strong><\/td>\r\n<td style=\"height: 14px;width: 1274.06px;text-align: center;vertical-align: middle\"><strong>Selgitus<\/strong><\/td>\r\n<\/tr>\r\n<tr style=\"height: 14px\">\r\n<td style=\"height: 14px;width: 78.0625px\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">data<\/code><\/td>\r\n<td style=\"height: 14px;width: 1274.06px\">Andmed v\u00f5ivad olla n-dimensioonilise andmemassiivi, s\u00f5nastiku, konstandi, j\u00e4rjendi v\u00f5i teise andmefreimi kujul. N\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">pandas.DataFrame([['Ruudi', 12], ['Malle', 10], ...])<\/code><\/td>\r\n<\/tr>\r\n<tr style=\"height: 14px\">\r\n<td style=\"height: 14px;width: 78.0625px\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code><\/td>\r\n<td style=\"height: 14px;width: 1274.06px\">Ridade siltide j\u00e4rjend, pikkus peab olema v\u00f5rdne ridade arvuga. Vaikimisi m\u00e4\u00e4ratakse arvud 0, 1, 2, ..., n-1, kus n on ridade arv. N\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index=['Sulev', 'Guido', 'Ada', 'Moona']<\/code><\/td>\r\n<\/tr>\r\n<tr style=\"height: 29px\">\r\n<td style=\"height: 29px;width: 78.0625px\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">columns<\/code><\/td>\r\n<td style=\"height: 29px;width: 1274.06px\">Veergude siltide j\u00e4rjend, pikkus peab olema v\u00f5rdne veergude arvuga. Vaikimisi m\u00e4\u00e4ratakse arvud 0, 1, 2, ..., m-1, kus m on veergude arv. N\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">columns=['Nimi', 'Matemaatika', 'Programmeerimine']<\/code><\/td>\r\n<\/tr>\r\n<tr style=\"height: 14px\">\r\n<td style=\"height: 14px;width: 78.0625px\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">dtype<\/code><\/td>\r\n<td style=\"height: 14px;width: 1274.06px\">Andmet\u00fc\u00fcp, mida DataFrames olevatele andmetele m\u00e4\u00e4ratakse. Vaikimisi j\u00e4reldatakse andmetest. N\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">dtype='float64'<\/code><\/td>\r\n<\/tr>\r\n<tr style=\"height: 14px\">\r\n<td style=\"height: 14px;width: 78.0625px\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">copy<\/code><\/td>\r\n<td style=\"height: 14px;width: 1274.06px\">M\u00e4\u00e4rab, kas andmetest, mida kasutatakse, tehakse koopia. Vaikimisi v\u00e4\u00e4rtus <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">False<\/code>.<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/div>\r\n&nbsp;","rendered":"<p>Juba seeria abil saab andmeid teatud m\u00e4\u00e4ral t\u00f6\u00f6delda ja illustreerida. Veelgi p\u00f5nevamaid v\u00f5imalusi pakub aga andmefreim (<em>DataFrame<\/em>), mis on sisuliselt andmetabel. Andmefreimist v\u00f5ib m\u00f5elda kui ka mitmest seeriast koosnevast kogumist, mis on omavahel \u00fchendatud. Seeria t\u00e4histab andmefreimis (<em>DataFrame<\/em>) \u00fchte veergu.<\/p>\n<table class=\"aligncenter\" style=\"border: none;height: 100px\">\n<tbody>\n<tr style=\"height: 58px\">\n<td style=\"text-align: center;vertical-align: middle;height: 58px;width: 49.0625px\"><\/td>\n<td style=\"height: 58px;width: 192.062px;text-align: center;vertical-align: middle\"><strong>Veerg 1<\/strong><br \/>\n<strong>(Seeria 1)<\/strong><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 58px;width: 198.062px;border-top: 2px solid #1155cc;border-left: 2px solid #1155cc;border-right: 2px solid #1155cc\"><strong>Veerg 2 <\/strong><br \/>\n<strong>(Seeria 2)<\/strong><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 58px;width: 199.062px\"><strong>Veerg 3 <\/strong><br \/>\n<strong style=\"font-family: inherit;font-size: inherit\">(Seeria 3)<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 14px\">\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 49.0625px\"><strong>0<\/strong><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 192.062px;background-color: #efefef\"><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 198.062px;background-color: #efefef;border-left: 2px solid #1155cc;border-right: 2px solid #1155cc\"><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 199.062px;background-color: #efefef\"><\/td>\n<\/tr>\n<tr style=\"height: 14px\">\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 49.0625px;border-top: 2px solid #ff9900;border-left: 2px solid #ff9900;border-bottom: 2px solid #ff9900\"><strong>1<\/strong><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 192.062px;background-color: #efefef;border-top: 2px solid #ff9900;border-bottom: 2px solid #ff9900\"><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 198.062px;background-color: #efefef;border-top: 2px solid #ff9900;border-bottom: 2px solid #ff9900;border-left: 2px solid #1155cc;border-right: 2px solid #1155cc\"><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 199.062px;background-color: #efefef;border-top: 2px solid #ff9900;border-bottom: 2px solid #ff9900;border-right: 2px solid #ff9900\"><\/td>\n<\/tr>\n<tr style=\"height: 14px\">\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 49.0625px\"><strong>2<\/strong><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 192.062px;background-color: #efefef\"><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 198.062px;background-color: #efefef;border-left: 2px solid #1155cc;border-right: 2px solid #1155cc;border-bottom: 2px solid #1155cc\"><\/td>\n<td style=\"text-align: center;vertical-align: middle;height: 14px;width: 199.062px;background-color: #efefef\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Andmefreimis v\u00f5ivad olla erinevat t\u00fc\u00fcpi andmed ja selle suurust saab muuta. Ridadele ja veergudele saab rakendada aritmeetilisi funktsioone &#8211; n\u00e4iteks saab veergusid liita, lahutada, korrutada ja jagada ning arvutada rea v\u00f5i veeru kaupa selle maksimumi, keskmist jpm.<\/p>\n<h2>Andmefreimi loomine<\/h2>\n<p>Pandase andmefreimi on v\u00f5imalik luua mitmel viisil. N\u00e4iteks j\u00e4rjendite, s\u00f5nastiku v\u00f5i s\u00f5nastiku, mis koosneb j\u00e4rjenditest, p\u00f5hjal.<\/p>\n<p>Loome andmefreimi s\u00f5nastiku, mille v\u00e4\u00e4rtused on j\u00e4rjendid, p\u00f5hjal. Olgu meil s\u00f5nastik, milles on \u00f5pilaste \u00f5ppeainete hinded. S\u00f5nastiku v\u00f5tmeteks on veerupealkirjad ja v\u00e4\u00e4rtusteks on hinded j\u00e4rjendis. Andmefreimi loomiseks tuleb kasutada funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">DataFrame<\/code>, mille argumendiks on s\u00f5nastik.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\n\r\nsonastik = {'Nimi': ['Malle', 'Saara', 'Kusti', 'Aksel'],\r\n'Matemaatika': [4, 5, 3, 4],\r\n'Programmeerimine': [4, 5, 5, 4]}\r\n\r\nhinded = pd.DataFrame(sonastik)\r\n\r\nprint(hinded)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n      Nimi  Matemaatika  Programmeerimine\r\n  0  Malle            4                 4\r\n  1  Saara            5                 5\r\n  2  Kusti            3                 5\r\n  3  Aksel            4                 4\r\n<\/pre>\n<p>Samuti v\u00f5ib andmefreimi luua Pythoni kahem\u00f5\u00f5tmeliste j\u00e4rjendite abil, sest sisuliselt on needki tabelid. Loome kahem\u00f5\u00f5tmelise j\u00e4rjendi, milles on andmed ja veergude pealkirjade jaoks kasutame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">DataFrame<\/code> funktsiooni parameetrit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">columns<\/code>, mille v\u00e4\u00e4rtuseks anname veergude pealkirjade j\u00e4rjendi. Juhul kui j\u00e4tame veergude pealkirjad defineerimata, siis vaikimisi lisatakse veergudele indeksid alates 0-st.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">lst = [['Malle', 4, 4],\r\n       ['Saara', 5, 5],\r\n       ['Kusti', 3, 5],\r\n       ['Aksel', 4, 4]]\r\n\r\nhinded = pd.DataFrame(lst, columns=['Nimi', 'Matemaatika', 'Programmeerimine'])\r\n\r\nprint(hinded)\r\n<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n      Nimi  Matemaatika  Programmeerimine\r\n  0  Malle            4                 4\r\n  1  Saara            5                 5\r\n  2  Kusti            3                 5\r\n  3  Aksel            4                 4\r\n<\/pre>\n<p>Kuna andmefreimist v\u00f5ib m\u00f5elda kui omavahel \u00fchendatud seeriatest, siis v\u00f5ib andmefreimi luua ka seeriate abil. Selleks, et erinevaid seeriad omavahel \u00fchendada kasutame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">concat<\/code> funktsiooni, mille argumendiks on seeriate j\u00e4rjend. Lisaks tuleb kasutada <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">axis<\/code> parameetrit, mis m\u00e4\u00e4rab kas seeriad \u00fchendatakse ridade (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">axis=0<\/code>, vaikev\u00e4\u00e4rtus) v\u00f5i veergude j\u00e4rgi (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">axis=1<\/code>). J\u00e4rgmises n\u00e4ites \u00fchendame seeriad veergude j\u00e4rgi ja lisame igale seeriale ka selle nime <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">name<\/code> parameetrit kasutades, mis on sisuliselt veeru pealkiri tabelis.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">veerg_1 = pd.Series(['Malle', 'Saara', 'Kusti', 'Aksel'], name='Nimi')\r\nveerg_2 = pd.Series([4, 5, 3, 4], name='Matemaatika')\r\nveerg_3 = pd.Series([4, 5, 5, 4], name='Programmeerimine')\r\n\r\nveerud = [veerg_1, veerg_2, veerg_3]\r\n\r\nhinded = pd.concat(veerud, axis=1)\r\n\r\nprint(hinded)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n      Nimi  Matemaatika  Programmeerimine\r\n  0  Malle            4                 4\r\n  1  Saara            5                 5\r\n  2  Kusti            3                 5\r\n  3  Aksel            4                 4<\/pre>\n<p>V\u00f5imalusi, kuidas andmefreimi luua on veelgi, n\u00e4iteks s\u00f5nastiku p\u00f5hjal, mille v\u00e4\u00e4rtusteks on omakorda seeriad v\u00f5i n\u00e4iteks ka j\u00e4rjendi p\u00f5hjal, mille elementideks kaheelemendilised ennikud. Oluline on, et kasutatav andmestruktuuri oleks v\u00f5imalik ts\u00fckliliselt l\u00e4bida. Andmete anal\u00fc\u00fcsimisel loetakse andmed tavaliselt failist, t\u00fc\u00fcpiliselt CSV failidest. Andmefreimi on v\u00f5imalik ka otse luua CSV faili sisu p\u00f5hjal (loe t\u00e4psemalt peat\u00fckist \u201cTeatrik\u00fclastuse n\u00e4ide\u201d v\u00f5i \u201cCOVID-19 n\u00e4ide\u201d).<\/p>\n<p>J\u00e4rgnevas tabelis on esitatud DataFrame funktsiooni parameetrid ja nende selgitused. Andmefreimi puhul ei pea k\u00f5iki parameetreid defineerimisel kasutama, parameetri \u00e4raj\u00e4tmisel kasutatakse selle vaikimisi m\u00e4\u00e4ratud v\u00e4\u00e4rtust.<\/p>\n<div style=\"text-align: left;\">\n<table class=\"grid aligncenter\" style=\"height: 99px\">\n<tbody>\n<tr style=\"height: 14px\">\n<td style=\"height: 14px;width: 78.0625px;text-align: center;vertical-align: middle\"><strong>Parameeter<\/strong><\/td>\n<td style=\"height: 14px;width: 1274.06px;text-align: center;vertical-align: middle\"><strong>Selgitus<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 14px\">\n<td style=\"height: 14px;width: 78.0625px\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">data<\/code><\/td>\n<td style=\"height: 14px;width: 1274.06px\">Andmed v\u00f5ivad olla n-dimensioonilise andmemassiivi, s\u00f5nastiku, konstandi, j\u00e4rjendi v\u00f5i teise andmefreimi kujul. N\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">pandas.DataFrame([['Ruudi', 12], ['Malle', 10], ...])<\/code><\/td>\n<\/tr>\n<tr style=\"height: 14px\">\n<td style=\"height: 14px;width: 78.0625px\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code><\/td>\n<td style=\"height: 14px;width: 1274.06px\">Ridade siltide j\u00e4rjend, pikkus peab olema v\u00f5rdne ridade arvuga. Vaikimisi m\u00e4\u00e4ratakse arvud 0, 1, 2, &#8230;, n-1, kus n on ridade arv. N\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index=['Sulev', 'Guido', 'Ada', 'Moona']<\/code><\/td>\n<\/tr>\n<tr style=\"height: 29px\">\n<td style=\"height: 29px;width: 78.0625px\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">columns<\/code><\/td>\n<td style=\"height: 29px;width: 1274.06px\">Veergude siltide j\u00e4rjend, pikkus peab olema v\u00f5rdne veergude arvuga. Vaikimisi m\u00e4\u00e4ratakse arvud 0, 1, 2, &#8230;, m-1, kus m on veergude arv. N\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">columns=['Nimi', 'Matemaatika', 'Programmeerimine']<\/code><\/td>\n<\/tr>\n<tr style=\"height: 14px\">\n<td style=\"height: 14px;width: 78.0625px\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">dtype<\/code><\/td>\n<td style=\"height: 14px;width: 1274.06px\">Andmet\u00fc\u00fcp, mida DataFrames olevatele andmetele m\u00e4\u00e4ratakse. Vaikimisi j\u00e4reldatakse andmetest. N\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">dtype='float64'<\/code><\/td>\n<\/tr>\n<tr style=\"height: 14px\">\n<td style=\"height: 14px;width: 78.0625px\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">copy<\/code><\/td>\n<td style=\"height: 14px;width: 1274.06px\">M\u00e4\u00e4rab, kas andmetest, mida kasutatakse, tehakse koopia. Vaikimisi v\u00e4\u00e4rtus <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">False<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"author":16,"menu_order":7,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-668","chapter","type-chapter","status-publish","hentry"],"part":93,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/668","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":6,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/668\/revisions"}],"predecessor-version":[{"id":683,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/668\/revisions\/683"}],"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\/668\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=668"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=668"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=668"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}