{"id":688,"date":"2020-12-29T15:14:11","date_gmt":"2020-12-29T15:14:11","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/?post_type=chapter&#038;p=688"},"modified":"2020-12-29T16:45:44","modified_gmt":"2020-12-29T16:45:44","slug":"andmete-muutmine-ja-selekteerimine-andmetabelis","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/andmete-muutmine-ja-selekteerimine-andmetabelis\/","title":{"raw":"Andmete muutmine ja selekteerimine andmetabelis","rendered":"Andmete muutmine ja selekteerimine andmetabelis"},"content":{"raw":"Andmetabelis tuleb sageli ette seda, et on vaja selekteerida teatud rida v\u00f5i veerg ning selle v\u00e4\u00e4rtust muuta. J\u00e4rgmistes n\u00e4idetes tutvustame, kuidas andmefreimis ridu ja veerge selekteerida.\r\n<h2>Rea selekteerimine<\/h2>\r\nEelmises n\u00e4ites n\u00e4gime, et hinnetetabelis on puuduvaid v\u00e4\u00e4rtusi (<code>NaN<\/code>), sest k\u00f5igi \u00f5pilaste bioloogia hindeid ei olnud esimeses hinnetetabelis. Lisame j\u00e4rgmises n\u00e4ites ka puuduvad bioloogia hinded.\r\n\r\nAndmefreimis on v\u00f5imalik vastav rida leida tabelis selle indeksi v\u00f5i selle sildi j\u00e4rgi. Nii nagu seerias, saab ka andmefreimis m\u00e4\u00e4rata sildid iga rea jaoks.\r\n\r\nEsmalt vaatame n\u00e4idet, kus me kasutame rea leidmiseks selle indeksit. Pandase moodulis kasutatakse vastava indeksiga rea selekteerimiseks funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code>. Selle funtksiooni kasutamine on sarnane tavalise Pythoni j\u00e4rjendist vastava indeksiga elemendi v\u00f5tmisega, kus j\u00e4rjendi nime j\u00e4rel kirjutatakse nurksulgude vahele vastav indeks. <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooni puhul peab funktsiooni nime j\u00e4rel nurksulgude vahele kirjutama vastava indeksi. Esmalt leiame tabeli esimese rea ja v\u00e4ljastame selle.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">sonastik_A = {'Nimi': ['Malle', 'Saara', 'Kusti', 'Aksel', 'Kalmer'],\r\n            'Matemaatika': [4, 5, 3, 4, 5],\r\n            'Programmeerimine': [4, 5, 5, 4, 3]}\r\n\r\nsonastik_B = {'Nimi': ['Sulev', 'Guido', 'Ada', 'Moona'],\r\n            'Matemaatika': [4, 5, 4, 5],\r\n            'Programmeerimine': [4, 5, 4, 3],\r\n            'Bioloogia': [5, 2, 3, 4]}\r\n\r\nhinded_A = pd.DataFrame(sonastik_A)\r\nhinded_B = pd.DataFrame(sonastik_B)\r\n\r\nhinded = pd.concat([hinded_A, hinded_B], ignore_index=True)\r\n\r\n# V\u00e4ljastame esimese rea\r\nprint(hinded.iloc[0])<\/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                Malle\r\n  Matemaatika             4\r\n  Programmeerimine        4\r\n  Bioloogia             NaN\r\n  Name: 0, dtype: object\r\n<\/pre>\r\nN\u00fc\u00fcd lisame ka Mallele bioloogia hinde ja v\u00e4ljastame terve tabeli. Kuna soovime muuta ainult \u00fcht v\u00e4\u00e4rtust bioloogia hinnete veerus, siis <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooni kasutamisel peame ka vastava veeru m\u00e4\u00e4rama.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">hinded['Bioloogia'].iloc[0] = 5\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  Bioloogia\r\n  0   Malle            4                 4        5.0\r\n  1   Saara            5                 5        NaN\r\n  2   Kusti            3                 5        NaN\r\n  3   Aksel            4                 4        NaN\r\n  4  Kalmer            5                 3        NaN\r\n  5   Sulev            4                 4        5.0\r\n  6   Guido            5                 5        2.0\r\n  7     Ada            4                 4        3.0\r\n  8   Moona            5                 3        4.0\r\n<\/pre>\r\n&nbsp;\r\n\r\nN\u00e4eme, et Mallel on bioloogia hinne olemas. Lisame ka Saarale ja Kalmerile hinded. Seda saame ka korraga teha, sest <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsioon v\u00f5imaldab ka erinevate indeksitega read korraga selekteerida. Selleks peab <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooni nurksulgude vahele lisama j\u00e4rjendi, kus on soovitud indeksid. Saara rea indeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">1<\/code> ja Kalmeri rea indeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">4<\/code>. Seega sobiv j\u00e4rjend on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">[1, 4]<\/code>. Saara bioloogia hinne on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">5<\/code> ja Kalmeri hinne on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">2<\/code>. Ka need saame korraga lisada, kui kasutame j\u00e4rjendit.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">hinded['Bioloogia'].iloc[[1, 4]] = [5, 2]\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  Bioloogia\r\n  0   Malle            4                 4        5.0\r\n  1   Saara            5                 5        5.0\r\n  2   Kusti            3                 5        NaN\r\n  3   Aksel            4                 4        NaN\r\n  4  Kalmer            5                 3        2.0\r\n  5   Sulev            4                 4        5.0\r\n  6   Guido            5                 5        2.0\r\n  7     Ada            4                 4        3.0\r\n  8   Moona            5                 3        4.0\r\n<\/pre>\r\n&nbsp;\r\n\r\nLisaks on v\u00f5imalik <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooniga selekteerida ka vahemik ridu nii nagu Pythonis saab viilutada j\u00e4rjendit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">[algusindeks:l\u00f5ppindeks]<\/code>, kus l\u00f5ppindeksiga element ei kuulu viilutatud vahemikku. Lisame Kusti ja Akseli bioloogia hinded. Kunsti rea indeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">2<\/code> ja Akseli rea indeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">3<\/code>. Nende hinded on vastavalt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">4<\/code> ja <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">5<\/code>.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">hinded['Bioloogia'].iloc[2:4] = [4, 5]\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  Bioloogia\r\n  0   Malle            4                 4        5.0\r\n  1   Saara            5                 5        5.0\r\n  2   Kusti            3                 5        4.0\r\n  3   Aksel            4                 4        5.0\r\n  4  Kalmer            5                 3        2.0\r\n  5   Sulev            4                 4        5.0\r\n  6   Guido            5                 5        2.0\r\n  7     Ada            4                 4        3.0\r\n  8   Moona            5                 3        4.0\r\n<\/pre>\r\nPandas v\u00f5imaldab ka rea siltide abil andmeid selekteerida, juhul kui andmetabelis on sildid m\u00e4\u00e4ratud. Loome hinnetetabeli, kus reasiltideks \u00f5pilaste nimed. Olgu meil kaks hinnetetabelit, millele oleme m\u00e4\u00e4ranud reasildid <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code> parameetrit kasutades.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">sonastik_A = {'Matemaatika': [4, 5, 3, 4, 5],\r\n            'Programmeerimine': [4, 5, 5, 4, 3]}\r\n\r\nsonastik_B = {'Matemaatika': [4, 5, 4, 5],\r\n            'Programmeerimine': [4, 5, 4, 3],\r\n            'Bioloogia': [5, 2, 3, 4]}\r\n\r\n# Sildid andmefreimide jaoks \r\nnimed_A = ['Malle', 'Saara', 'Kusti', 'Aksel', 'Kalmer']\r\nnimed_B = ['Sulev', 'Guido', 'Ada', 'Moona']\r\n\r\nhinded_A = pd.DataFrame(sonastik_A, index=nimed_A)\r\nhinded_B = pd.DataFrame(sonastik_B, index=nimed_B)\r\n<\/pre>\r\n\u00dchendame need kaks tabelit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">concat<\/code> funktsiooni kasutades, kui n\u00fc\u00fcd me ei lisa <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">ignore_index<\/code> parameetrit, sest tahame kasutada silte, mitte automaatselt m\u00e4\u00e4ratud indekseid.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">hinded = pd.concat([hinded_A, hinded_B])\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          Matemaatika  Programmeerimine  Bioloogia\r\n  Malle             4                 4        NaN\r\n  Saara             5                 5        NaN\r\n  Kusti             3                 5        NaN\r\n  Aksel             4                 4        NaN\r\n  Kalmer            5                 3        NaN\r\n  Sulev             4                 4        5.0\r\n  Guido             5                 5        2.0\r\n  Ada               4                 4        3.0\r\n  Moona             5                 3        4.0\r\n<\/pre>\r\nLisame puudavad bioloogia hinded, kasutades vastavaid silte ehk \u00f5pilaste nimesid. Kui indeksitega selekteerimisel kasutasime <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooni, siis siltide abil selekteerimisel kasutame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooni. Erinevalt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsioonist, kus kasutasime nurksulgude vahel indeksit, lisame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooni puhul nurksulgude vahele vastava sildi. V\u00e4ljastame k\u00f5ik Ada hinded.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.loc['Ada'])<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Matemaatika         4.0\r\n  Programmeerimine    4.0\r\n  Bioloogia           3.0\r\n  Name: Ada, dtype: float64\r\n<\/pre>\r\n<span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff5bd\">\u00a0Rida tagastatakse seeriana.<\/span>\r\n\r\nLisame Malle puuduva bioloogia hinde. Selleks peame kasutama vastavat reasilti (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Malle<\/code>) ja veeru pealkirja (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Bioloogia<\/code>), mida saame kasutada mugavalt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsioonis nagu rea- ja veeruindeksit.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">hinded.loc['Malle', 'Bioloogia'] = 5<\/pre>\r\nSarnaselt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooni kasutamisele, saame ka <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooniga valida ridu vahemikust v\u00f5i mitu korraga. Lisame ka \u00fclej\u00e4\u00e4nud \u00f5pilaste bioloogia hinded.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\"># Muudame mitu rida korraga\r\nhinded.loc[['Saara', 'Kalmer'], 'Bioloogia'] = [2, 4]\r\n\r\n# Muudame teatud vahemik ridu\r\n# Vahemiku l\u00f5pp-punkt (l\u00f5ppsilt) on kaasaarvatud\r\nhinded.loc['Kusti':'Aksel', 'Bioloogia'] = [5, 5]\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          Matemaatika  Programmeerimine  Bioloogia\r\n  Malle             4                 4        5.0\r\n  Saara             5                 5        2.0\r\n  Kusti             3                 5        5.0\r\n  Aksel             4                 4        5.0\r\n  Kalmer            5                 3        4.0\r\n  Sulev             4                 4        5.0\r\n  Guido             5                 5        2.0\r\n  Ada               4                 4        3.0\r\n  Moona             5                 3        4.0\r\n<\/pre>\r\n<h2>Veeru selekteerimine<\/h2>\r\nAndmefreimis on konkreetse veeru selekteerimine lihtne. Selleks, et vastavat veergu valida, tuleb kasutada selle pealkirja nurksulgude vahel p\u00e4rast andmefreimi nime. See on sarnane s\u00f5nastikust vastava v\u00f5tmega v\u00e4\u00e4rtuse leidmisega. V\u00e4ljastame k\u00f5ik matemaatika hinded.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded['Matemaatika'])<\/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    4\r\n  1    5\r\n  2    3\r\n  3    4\r\n  4    5\r\n  5    4\r\n  6    5\r\n  7    4\r\n  8    5\r\n  Name: Matemaatika, dtype: int64\r\n<\/pre>\r\nPandase moodulil on \u00fcks erip\u00e4ra, mida saab v\u00e4ga mugavalt \u00e4ra kasutada. Nimelt on v\u00f5imalik andmefreimi veergude nimesid kasutada andmefreimi nime j\u00e4rel p\u00e4rast punkti. V\u00e4ljastame programmeerimise hinded.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.Programmeerimine)<\/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    4\r\n  1    5\r\n  2    5\r\n  3    4\r\n  4    3\r\n  5    4\r\n  6    5\r\n  7    4\r\n  8    3\r\n  Name: Programmeerimine, dtype: int64\r\n<\/pre>\r\nSarnaselt rea selekteerimisega, saab <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooniga ka veerge valida. V\u00e4ljastame tabeli esimese rea, kus on \u00f5pilaste nimed. Erinevalt rea selekteerimisest, kus esimese rea v\u00e4ljastamiseks kasutasime\u00a0 ainult reaindeksit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsioonis, siis veeru leidmiseks peab lisama ka veeruindeksi. Selleks, et v\u00e4ljastada kogu esimene veerg, selekteerimine k\u00f5ik read, seega reaindeksina kasutame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">:<\/code> ja vastav veeruindeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">0<\/code>.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.iloc[:, 0])<\/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     Malle\r\n  1     Saara\r\n  2     Kusti\r\n  3     Aksel\r\n  4    Kalmer\r\n  5     Sulev\r\n  6     Guido\r\n  7       Ada\r\n  8     Moona\r\n  Name: Nimi, dtype: object\r\n<\/pre>\r\nKui tahame andmeid teisest veerust kuni viimase veeruni, siis rea indeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">:<\/code> ja veergude indeksid on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">[1:4]<\/code>.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\"># V\u00e4lja arvatud on veerg indeksiga 0\r\nprint(hinded.iloc[:, 1:4])<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n     Matemaatika  Programmeerimine  Bioloogia\r\n  0            4                 4        5.0\r\n  1            5                 5        5.0\r\n  2            3                 5        4.0\r\n  3            4                 4        5.0\r\n  4            5                 3        2.0\r\n  5            4                 4        5.0\r\n  6            5                 5        2.0\r\n  7            4                 4        3.0\r\n  8            5                 3        4.0\r\n<\/pre>\r\nKa <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooniga on v\u00f5imalik veerge valida. Selekteerime mitu veergu korraga. V\u00e4ljastame matemaatika ja programmeerimise hinded. Sarnaselt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsioonile, saab <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooniga kasutada mitut silti korraga. Me soovime valida k\u00f5ik read <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">:<\/code> ja veerud <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">['Matemaatika', 'Programmeerimine']<\/code>.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.loc[:, ['Matemaatika', 'Programmeerimine']])<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n          Matemaatika  Programmeerimine\r\n  Malle             4                 4\r\n  Saara             5                 5\r\n  Kusti             3                 5\r\n  Aksel             4                 4\r\n  Kalmer            5                 3\r\n  Sulev             4                 4\r\n  Guido             5                 5\r\n  Ada               4                 4\r\n  Moona             5                 3\r\n<\/pre>\r\nV\u00e4ljastame Sulevi ja Moona matemaatika ning programmeerimise hinded.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.loc[['Sulev', 'Moona'], ['Matemaatika', 'Programmeerimine']])<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n         Matemaatika  Programmeerimine\r\n  Sulev            4                 4\r\n  Moona            5                 3\r\n<\/pre>\r\n<h2>Tingimuslik selekteerimine<\/h2>\r\nPandsega on lihtne leida andmeid, mis vastavad teatud tingimustele. Kasutame taas eelmistes n\u00e4idetes kasutatud hinnetetabelit.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">sonastik = {'Matemaatika': [4, 5, 3, 4, 5],\r\n'Programmeerimine': [4, 5, 5, 4, 3]}\r\n\r\nopilased = ['Malle', 'Saara', 'Kusti', 'Aksel', 'Kalmer']\r\nhinded = pd.DataFrame(sonastik, index=opilased)<\/pre>\r\nLeiame k\u00f5ik \u00f5pilased, kes on saanud programmeerimises viie. Selleks on vaja kasutada tingimust, kus programmeerimise hinne v\u00f5rdub t\u00e4pselt viiega. Tingimuslause oleks selline <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">hinded.Programmeerimine == 5<\/code>. V\u00e4ljastame tulemuse.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.Programmeerimine == 5)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Malle     False\r\n  Saara      True\r\n  Kusti      True\r\n  Aksel     False\r\n  Kalmer    False\r\n  Name: Programmeerimine, dtype: bool\r\n<\/pre>\r\nN\u00e4eme, et Saara ja Kusti programmeerimise hinne on viis. Tingimusi on v\u00f5imalik kasutada ka <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooniga, kus tingimus lisatakse funktsiooni v\u00e4ljakutsel nurksulgude vahele.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.loc[hinded.Programmeerimine == 5])<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n         Matemaatika  Programmeerimine\r\n  Saara            5                 5\r\n  Kusti            3                 5\r\n<\/pre>\r\nN\u00e4eme, et tagastatakse k\u00f5ik need read, mis vastavad tingimustele. Juhul, kui soovime kasutada tingimustele vastavad andmetabelit edasises anal\u00fc\u00fcsis, siis on otstarbekam kasutada <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooni, aga kui on vaja saada infot t\u00f5ev\u00e4\u00e4rtustena, siis ei ole m\u00f5istlik <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooni kasutada.\r\n\r\nJ\u00e4rgmisena kasutame veidi keerulisemat tingimust. Leiame \u00f5pilased, kes said nii programmeerimises kui ka matemaatikas viie. Vastav tingimus on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">(hinded.Programmeerimine == 5) &amp; (hinded.Matemaatika == 5)<\/code>.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.loc[(hinded.Programmeerimine == 5) &amp; (hinded.Matemaatika == 5)])<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n         Matemaatika  Programmeerimine\r\n  Saara            5                 5\r\n<\/pre>\r\n<span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff5bd\">\u00a0<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooni tingimustes peab kasutama <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">&amp;<\/code> (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">and<\/code>) ja <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">|<\/code> (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">or<\/code>) asemel ja liittingimuste puhul tuleb tingimused sulgudesse panna.<\/span>","rendered":"<p>Andmetabelis tuleb sageli ette seda, et on vaja selekteerida teatud rida v\u00f5i veerg ning selle v\u00e4\u00e4rtust muuta. J\u00e4rgmistes n\u00e4idetes tutvustame, kuidas andmefreimis ridu ja veerge selekteerida.<\/p>\n<h2>Rea selekteerimine<\/h2>\n<p>Eelmises n\u00e4ites n\u00e4gime, et hinnetetabelis on puuduvaid v\u00e4\u00e4rtusi (<code>NaN<\/code>), sest k\u00f5igi \u00f5pilaste bioloogia hindeid ei olnud esimeses hinnetetabelis. Lisame j\u00e4rgmises n\u00e4ites ka puuduvad bioloogia hinded.<\/p>\n<p>Andmefreimis on v\u00f5imalik vastav rida leida tabelis selle indeksi v\u00f5i selle sildi j\u00e4rgi. Nii nagu seerias, saab ka andmefreimis m\u00e4\u00e4rata sildid iga rea jaoks.<\/p>\n<p>Esmalt vaatame n\u00e4idet, kus me kasutame rea leidmiseks selle indeksit. Pandase moodulis kasutatakse vastava indeksiga rea selekteerimiseks funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code>. Selle funtksiooni kasutamine on sarnane tavalise Pythoni j\u00e4rjendist vastava indeksiga elemendi v\u00f5tmisega, kus j\u00e4rjendi nime j\u00e4rel kirjutatakse nurksulgude vahele vastav indeks. <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooni puhul peab funktsiooni nime j\u00e4rel nurksulgude vahele kirjutama vastava indeksi. Esmalt leiame tabeli esimese rea ja v\u00e4ljastame selle.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">sonastik_A = {'Nimi': ['Malle', 'Saara', 'Kusti', 'Aksel', 'Kalmer'],\r\n            'Matemaatika': [4, 5, 3, 4, 5],\r\n            'Programmeerimine': [4, 5, 5, 4, 3]}\r\n\r\nsonastik_B = {'Nimi': ['Sulev', 'Guido', 'Ada', 'Moona'],\r\n            'Matemaatika': [4, 5, 4, 5],\r\n            'Programmeerimine': [4, 5, 4, 3],\r\n            'Bioloogia': [5, 2, 3, 4]}\r\n\r\nhinded_A = pd.DataFrame(sonastik_A)\r\nhinded_B = pd.DataFrame(sonastik_B)\r\n\r\nhinded = pd.concat([hinded_A, hinded_B], ignore_index=True)\r\n\r\n# V\u00e4ljastame esimese rea\r\nprint(hinded.iloc[0])<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Nimi                Malle\r\n  Matemaatika             4\r\n  Programmeerimine        4\r\n  Bioloogia             NaN\r\n  Name: 0, dtype: object\r\n<\/pre>\n<p>N\u00fc\u00fcd lisame ka Mallele bioloogia hinde ja v\u00e4ljastame terve tabeli. Kuna soovime muuta ainult \u00fcht v\u00e4\u00e4rtust bioloogia hinnete veerus, siis <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooni kasutamisel peame ka vastava veeru m\u00e4\u00e4rama.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">hinded['Bioloogia'].iloc[0] = 5\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  Bioloogia\r\n  0   Malle            4                 4        5.0\r\n  1   Saara            5                 5        NaN\r\n  2   Kusti            3                 5        NaN\r\n  3   Aksel            4                 4        NaN\r\n  4  Kalmer            5                 3        NaN\r\n  5   Sulev            4                 4        5.0\r\n  6   Guido            5                 5        2.0\r\n  7     Ada            4                 4        3.0\r\n  8   Moona            5                 3        4.0\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>N\u00e4eme, et Mallel on bioloogia hinne olemas. Lisame ka Saarale ja Kalmerile hinded. Seda saame ka korraga teha, sest <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsioon v\u00f5imaldab ka erinevate indeksitega read korraga selekteerida. Selleks peab <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooni nurksulgude vahele lisama j\u00e4rjendi, kus on soovitud indeksid. Saara rea indeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">1<\/code> ja Kalmeri rea indeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">4<\/code>. Seega sobiv j\u00e4rjend on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">[1, 4]<\/code>. Saara bioloogia hinne on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">5<\/code> ja Kalmeri hinne on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">2<\/code>. Ka need saame korraga lisada, kui kasutame j\u00e4rjendit.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">hinded['Bioloogia'].iloc[[1, 4]] = [5, 2]\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  Bioloogia\r\n  0   Malle            4                 4        5.0\r\n  1   Saara            5                 5        5.0\r\n  2   Kusti            3                 5        NaN\r\n  3   Aksel            4                 4        NaN\r\n  4  Kalmer            5                 3        2.0\r\n  5   Sulev            4                 4        5.0\r\n  6   Guido            5                 5        2.0\r\n  7     Ada            4                 4        3.0\r\n  8   Moona            5                 3        4.0\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Lisaks on v\u00f5imalik <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooniga selekteerida ka vahemik ridu nii nagu Pythonis saab viilutada j\u00e4rjendit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">[algusindeks:l\u00f5ppindeks]<\/code>, kus l\u00f5ppindeksiga element ei kuulu viilutatud vahemikku. Lisame Kusti ja Akseli bioloogia hinded. Kunsti rea indeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">2<\/code> ja Akseli rea indeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">3<\/code>. Nende hinded on vastavalt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">4<\/code> ja <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">5<\/code>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">hinded['Bioloogia'].iloc[2:4] = [4, 5]\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  Bioloogia\r\n  0   Malle            4                 4        5.0\r\n  1   Saara            5                 5        5.0\r\n  2   Kusti            3                 5        4.0\r\n  3   Aksel            4                 4        5.0\r\n  4  Kalmer            5                 3        2.0\r\n  5   Sulev            4                 4        5.0\r\n  6   Guido            5                 5        2.0\r\n  7     Ada            4                 4        3.0\r\n  8   Moona            5                 3        4.0\r\n<\/pre>\n<p>Pandas v\u00f5imaldab ka rea siltide abil andmeid selekteerida, juhul kui andmetabelis on sildid m\u00e4\u00e4ratud. Loome hinnetetabeli, kus reasiltideks \u00f5pilaste nimed. Olgu meil kaks hinnetetabelit, millele oleme m\u00e4\u00e4ranud reasildid <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index<\/code> parameetrit kasutades.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">sonastik_A = {'Matemaatika': [4, 5, 3, 4, 5],\r\n            'Programmeerimine': [4, 5, 5, 4, 3]}\r\n\r\nsonastik_B = {'Matemaatika': [4, 5, 4, 5],\r\n            'Programmeerimine': [4, 5, 4, 3],\r\n            'Bioloogia': [5, 2, 3, 4]}\r\n\r\n# Sildid andmefreimide jaoks \r\nnimed_A = ['Malle', 'Saara', 'Kusti', 'Aksel', 'Kalmer']\r\nnimed_B = ['Sulev', 'Guido', 'Ada', 'Moona']\r\n\r\nhinded_A = pd.DataFrame(sonastik_A, index=nimed_A)\r\nhinded_B = pd.DataFrame(sonastik_B, index=nimed_B)\r\n<\/pre>\n<p>\u00dchendame need kaks tabelit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">concat<\/code> funktsiooni kasutades, kui n\u00fc\u00fcd me ei lisa <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">ignore_index<\/code> parameetrit, sest tahame kasutada silte, mitte automaatselt m\u00e4\u00e4ratud indekseid.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">hinded = pd.concat([hinded_A, hinded_B])\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          Matemaatika  Programmeerimine  Bioloogia\r\n  Malle             4                 4        NaN\r\n  Saara             5                 5        NaN\r\n  Kusti             3                 5        NaN\r\n  Aksel             4                 4        NaN\r\n  Kalmer            5                 3        NaN\r\n  Sulev             4                 4        5.0\r\n  Guido             5                 5        2.0\r\n  Ada               4                 4        3.0\r\n  Moona             5                 3        4.0\r\n<\/pre>\n<p>Lisame puudavad bioloogia hinded, kasutades vastavaid silte ehk \u00f5pilaste nimesid. Kui indeksitega selekteerimisel kasutasime <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooni, siis siltide abil selekteerimisel kasutame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooni. Erinevalt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsioonist, kus kasutasime nurksulgude vahel indeksit, lisame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooni puhul nurksulgude vahele vastava sildi. V\u00e4ljastame k\u00f5ik Ada hinded.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.loc['Ada'])<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Matemaatika         4.0\r\n  Programmeerimine    4.0\r\n  Bioloogia           3.0\r\n  Name: Ada, dtype: float64\r\n<\/pre>\n<p><span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff5bd\">\u00a0Rida tagastatakse seeriana.<\/span><\/p>\n<p>Lisame Malle puuduva bioloogia hinde. Selleks peame kasutama vastavat reasilti (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Malle<\/code>) ja veeru pealkirja (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">Bioloogia<\/code>), mida saame kasutada mugavalt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsioonis nagu rea- ja veeruindeksit.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">hinded.loc['Malle', 'Bioloogia'] = 5<\/pre>\n<p>Sarnaselt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooni kasutamisele, saame ka <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooniga valida ridu vahemikust v\u00f5i mitu korraga. Lisame ka \u00fclej\u00e4\u00e4nud \u00f5pilaste bioloogia hinded.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\"># Muudame mitu rida korraga\r\nhinded.loc[['Saara', 'Kalmer'], 'Bioloogia'] = [2, 4]\r\n\r\n# Muudame teatud vahemik ridu\r\n# Vahemiku l\u00f5pp-punkt (l\u00f5ppsilt) on kaasaarvatud\r\nhinded.loc['Kusti':'Aksel', 'Bioloogia'] = [5, 5]\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          Matemaatika  Programmeerimine  Bioloogia\r\n  Malle             4                 4        5.0\r\n  Saara             5                 5        2.0\r\n  Kusti             3                 5        5.0\r\n  Aksel             4                 4        5.0\r\n  Kalmer            5                 3        4.0\r\n  Sulev             4                 4        5.0\r\n  Guido             5                 5        2.0\r\n  Ada               4                 4        3.0\r\n  Moona             5                 3        4.0\r\n<\/pre>\n<h2>Veeru selekteerimine<\/h2>\n<p>Andmefreimis on konkreetse veeru selekteerimine lihtne. Selleks, et vastavat veergu valida, tuleb kasutada selle pealkirja nurksulgude vahel p\u00e4rast andmefreimi nime. See on sarnane s\u00f5nastikust vastava v\u00f5tmega v\u00e4\u00e4rtuse leidmisega. V\u00e4ljastame k\u00f5ik matemaatika hinded.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded['Matemaatika'])<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  0    4\r\n  1    5\r\n  2    3\r\n  3    4\r\n  4    5\r\n  5    4\r\n  6    5\r\n  7    4\r\n  8    5\r\n  Name: Matemaatika, dtype: int64\r\n<\/pre>\n<p>Pandase moodulil on \u00fcks erip\u00e4ra, mida saab v\u00e4ga mugavalt \u00e4ra kasutada. Nimelt on v\u00f5imalik andmefreimi veergude nimesid kasutada andmefreimi nime j\u00e4rel p\u00e4rast punkti. V\u00e4ljastame programmeerimise hinded.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.Programmeerimine)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  0    4\r\n  1    5\r\n  2    5\r\n  3    4\r\n  4    3\r\n  5    4\r\n  6    5\r\n  7    4\r\n  8    3\r\n  Name: Programmeerimine, dtype: int64\r\n<\/pre>\n<p>Sarnaselt rea selekteerimisega, saab <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsiooniga ka veerge valida. V\u00e4ljastame tabeli esimese rea, kus on \u00f5pilaste nimed. Erinevalt rea selekteerimisest, kus esimese rea v\u00e4ljastamiseks kasutasime\u00a0 ainult reaindeksit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsioonis, siis veeru leidmiseks peab lisama ka veeruindeksi. Selleks, et v\u00e4ljastada kogu esimene veerg, selekteerimine k\u00f5ik read, seega reaindeksina kasutame <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">:<\/code> ja vastav veeruindeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">0<\/code>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.iloc[:, 0])<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  0     Malle\r\n  1     Saara\r\n  2     Kusti\r\n  3     Aksel\r\n  4    Kalmer\r\n  5     Sulev\r\n  6     Guido\r\n  7       Ada\r\n  8     Moona\r\n  Name: Nimi, dtype: object\r\n<\/pre>\n<p>Kui tahame andmeid teisest veerust kuni viimase veeruni, siis rea indeks on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">:<\/code> ja veergude indeksid on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">[1:4]<\/code>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\"># V\u00e4lja arvatud on veerg indeksiga 0\r\nprint(hinded.iloc[:, 1:4])<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n     Matemaatika  Programmeerimine  Bioloogia\r\n  0            4                 4        5.0\r\n  1            5                 5        5.0\r\n  2            3                 5        4.0\r\n  3            4                 4        5.0\r\n  4            5                 3        2.0\r\n  5            4                 4        5.0\r\n  6            5                 5        2.0\r\n  7            4                 4        3.0\r\n  8            5                 3        4.0\r\n<\/pre>\n<p>Ka <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooniga on v\u00f5imalik veerge valida. Selekteerime mitu veergu korraga. V\u00e4ljastame matemaatika ja programmeerimise hinded. Sarnaselt <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">iloc<\/code> funktsioonile, saab <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooniga kasutada mitut silti korraga. Me soovime valida k\u00f5ik read <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">:<\/code> ja veerud <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">['Matemaatika', 'Programmeerimine']<\/code>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.loc[:, ['Matemaatika', 'Programmeerimine']])<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n          Matemaatika  Programmeerimine\r\n  Malle             4                 4\r\n  Saara             5                 5\r\n  Kusti             3                 5\r\n  Aksel             4                 4\r\n  Kalmer            5                 3\r\n  Sulev             4                 4\r\n  Guido             5                 5\r\n  Ada               4                 4\r\n  Moona             5                 3\r\n<\/pre>\n<p>V\u00e4ljastame Sulevi ja Moona matemaatika ning programmeerimise hinded.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.loc[['Sulev', 'Moona'], ['Matemaatika', 'Programmeerimine']])<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n         Matemaatika  Programmeerimine\r\n  Sulev            4                 4\r\n  Moona            5                 3\r\n<\/pre>\n<h2>Tingimuslik selekteerimine<\/h2>\n<p>Pandsega on lihtne leida andmeid, mis vastavad teatud tingimustele. Kasutame taas eelmistes n\u00e4idetes kasutatud hinnetetabelit.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">sonastik = {'Matemaatika': [4, 5, 3, 4, 5],\r\n'Programmeerimine': [4, 5, 5, 4, 3]}\r\n\r\nopilased = ['Malle', 'Saara', 'Kusti', 'Aksel', 'Kalmer']\r\nhinded = pd.DataFrame(sonastik, index=opilased)<\/pre>\n<p>Leiame k\u00f5ik \u00f5pilased, kes on saanud programmeerimises viie. Selleks on vaja kasutada tingimust, kus programmeerimise hinne v\u00f5rdub t\u00e4pselt viiega. Tingimuslause oleks selline <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">hinded.Programmeerimine == 5<\/code>. V\u00e4ljastame tulemuse.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.Programmeerimine == 5)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Malle     False\r\n  Saara      True\r\n  Kusti      True\r\n  Aksel     False\r\n  Kalmer    False\r\n  Name: Programmeerimine, dtype: bool\r\n<\/pre>\n<p>N\u00e4eme, et Saara ja Kusti programmeerimise hinne on viis. Tingimusi on v\u00f5imalik kasutada ka <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooniga, kus tingimus lisatakse funktsiooni v\u00e4ljakutsel nurksulgude vahele.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.loc[hinded.Programmeerimine == 5])<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n         Matemaatika  Programmeerimine\r\n  Saara            5                 5\r\n  Kusti            3                 5\r\n<\/pre>\n<p>N\u00e4eme, et tagastatakse k\u00f5ik need read, mis vastavad tingimustele. Juhul, kui soovime kasutada tingimustele vastavad andmetabelit edasises anal\u00fc\u00fcsis, siis on otstarbekam kasutada <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooni, aga kui on vaja saada infot t\u00f5ev\u00e4\u00e4rtustena, siis ei ole m\u00f5istlik <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooni kasutada.<\/p>\n<p>J\u00e4rgmisena kasutame veidi keerulisemat tingimust. Leiame \u00f5pilased, kes said nii programmeerimises kui ka matemaatikas viie. Vastav tingimus on <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">(hinded.Programmeerimine == 5) &amp; (hinded.Matemaatika == 5)<\/code>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(hinded.loc[(hinded.Programmeerimine == 5) &amp; (hinded.Matemaatika == 5)])<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n         Matemaatika  Programmeerimine\r\n  Saara            5                 5\r\n<\/pre>\n<p><span style=\"background-color: #f1c232\">\u00a0! <\/span><span style=\"background-color: #fff5bd\">\u00a0<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">loc<\/code> funktsiooni tingimustes peab kasutama <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">&amp;<\/code> (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">and<\/code>) ja <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">|<\/code> (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">or<\/code>) asemel ja liittingimuste puhul tuleb tingimused sulgudesse panna.<\/span><\/p>\n","protected":false},"author":16,"menu_order":9,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-688","chapter","type-chapter","status-publish","hentry"],"part":93,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/688","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":5,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/688\/revisions"}],"predecessor-version":[{"id":690,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/688\/revisions\/690"}],"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\/688\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=688"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=688"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=688"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}