kais@praktika1 ~/public_html/DHtehnoloogiad/pandas $ python3.5 Python 3.5.2 (default, Nov 12 2018, 13:43:14) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import pandas as pd >>> morfo = pd.read_csv("A2morfo.csv") >>> morfo.head() Sõna;Liik ja vorm;Tüvi 0 Tere;I;tere+0 1 Mari;S.prop.sg.nom;Mari+0 2 !;Z.Exc;! 3 Kuidas;D;kuidas+0 4 sul;P.sg.ad;sina+l #Kuna eraldaja polnud koma, tuli see eraldi defineerida. >>> morfo = pd.read_csv("A2morfo.csv", sep = ';') >>> morfo.head() Sõna Liik ja vorm Tüvi 0 Tere I tere+0 1 Mari S.prop.sg.nom Mari+0 2 ! Z.Exc ! 3 Kuidas D kuidas+0 4 sul P.sg.ad sina+l >>> morfo.tail() Sõna Liik ja vorm Tüvi 77 varsti D varsti+0 78 ! Z.Exc ! 79 Sinu P.sg.gen sina+0 80 parim A.super.sg.nom parim+0 81 sõber S.com.sg.nom sõber+0 >>> morfo Sõna Liik ja vorm Tüvi 0 Tere I tere+0 1 Mari S.prop.sg.nom Mari+0 2 ! Z.Exc ! 3 Kuidas D kuidas+0 4 sul P.sg.ad sina+l 5 läheb V.main.indic.pres.ps3.sg.ps.af mine+b 6 ? Z.Int ? 7 Ma P.sg.nom mina+0 8 loodan V.main.indic.pres.ps1.sg.ps.af loot+n 9 et J.sub et+0 10 kõik P.sg.nom kƵik+0 11 on V.main.indic.pres.ps3.sg.ps.af ole+0 12 hästi D hƤsti+0 13 ! Z.Exc ! 14 Suvel S.com.sg.ad suvi+l 15 ma P.sg.nom mina+0 16 puhkan V.main.indic.pres.ps1.sg.ps.af 17 ja J.crd ja+0 18 ma P.sg.nom mina+0 19 tahan V.main.indic.pres.ps1.sg.ps.af taht+n 20 minna V.main.inf mine+a 21 Hispaaniasse S.prop.sg.ill 22 ! Z.Exc ! 23 Madrid S.com.pl.nom 24 on V.main.indic.pres.ps3.pl.ps.af ole+0 25 väga D väga+0 26 ilus A.pos.sg.nom ilus+0 27 linn S.com.sg.nom linn+0 28 ja J.crd ja+0 29 ilm S.com.sg.nom ilm+0 .. ... ... ... 52 meres S.com.sg.in meri+s 53 ja J.crd ja+0 54 matkama V.main.sup.ps.ill matka+ma 55 ! Z.Exc ! 56 Kas D kas+0 57 sul P.sg.ad sina+l 58 on V.main.indic.pres.ps3.sg.ps.af ole+0 59 vaba A.pos.sg.part vaba+0 60 aega S.com.sg.part aeg+0 61 Juulis S.com.sg.in juuli+s 62 ? Z.Int ? 63 Kas D kas+0 64 sa P.sg.nom sina+0 65 tahad V.main.indic.pres.ps2.sg.ps.af taht+d 66 tulla V.main.inf tule+a 67 minuga P.sg.kom mina+ga 68 ? Z.Int ? 69 Ma P.sg.nom mina+0 70 igatsesin V.main.indic.impf.ps1.sg.ps.af igatse+sin 71 sind P.sg.part sina+d 72 ja J.crd ja+0 73 ma P.sg.nom mina+0 74 loodan V.main.indic.pres.ps1.sg.ps.af loot+n 75 et J.sub et+0 76 näeme V.main.indic.pres.ps1.pl.ps.af näge+me 77 varsti D varsti+0 78 ! Z.Exc ! 79 Sinu P.sg.gen sina+0 80 parim A.super.sg.nom parim+0 81 sõber S.com.sg.nom sõber+0 [82 rows x 3 columns] #Sõnade järgi tähestikuliselt sortimine: >>> morfo.sort_values(by="Sõna").head() Sõna Liik ja vorm Tüvi 13 ! Z.Exc ! 22 ! Z.Exc ! 2 ! Z.Exc ! 48 ! Z.Exc ! 55 ! Z.Exc ! >>> morfo.sort_values(by="Sõna") Sõna Liik ja vorm Tüvi 13 ! Z.Exc ! 22 ! Z.Exc ! 2 ! Z.Exc ! 48 ! Z.Exc ! 55 ! Z.Exc ! 78 ! Z.Exc ! 40 . Z.Fst . 34 . Z.Fst . 68 ? Z.Int ? 62 ? Z.Int ? 6 ? Z.Int ? 21 Hispaaniasse S.prop.sg.ill 38 Juuli S.com.sg.gen juuli+0 61 Juulis S.com.sg.in juuli+s 46 Juulis S.com.sg.in juuli+s 63 Kas D kas+0 56 Kas D kas+0 3 Kuidas D kuidas+0 7 Ma P.sg.nom mina+0 35 Ma P.sg.nom mina+0 69 Ma P.sg.nom mina+0 49 Ma P.sg.nom mina+0 23 Madrid S.com.pl.nom 1 Mari S.prop.sg.nom Mari+0 41 See P.sg.nom see+0 79 Sinu P.sg.gen sina+0 14 Suvel S.com.sg.ad suvi+l 0 Tere I tere+0 60 aega S.com.sg.part aeg+0 31 alati D alati+0 .. ... ... ... 18 ma P.sg.nom mina+0 54 matkama V.main.sup.ps.ill matka+ma 52 meres S.com.sg.in meri+s 20 minna V.main.inf mine+a 67 minuga P.sg.kom mina+ga 76 näeme V.main.indic.pres.ps1.pl.ps.af näge+me 42 on V.main.indic.pres.ps3.sg.ps.af ole+0 24 on V.main.indic.pres.ps3.pl.ps.af ole+0 11 on V.main.indic.pres.ps3.sg.ps.af ole+0 58 on V.main.indic.pres.ps3.sg.ps.af ole+0 30 on V.main.indic.pres.ps3.sg.ps.af ole+0 80 parim A.super.sg.nom parim+0 16 puhkan V.main.indic.pres.ps1.sg.ps.af 43 päikseline A.pos.sg.nom 64 sa P.sg.nom sina+0 47 seal D seal+0 71 sind P.sg.part sina+d 45 soe A.pos.sg.nom soe+0 4 sul P.sg.ad sina+l 57 sul P.sg.ad sina+l 81 sõber S.com.sg.nom sõber+0 65 tahad V.main.indic.pres.ps2.sg.ps.af taht+d 36 tahan V.main.indic.pres.ps1.sg.ps.af taht+n 19 tahan V.main.indic.pres.ps1.sg.ps.af taht+n 66 tulla V.main.inf tule+a 51 ujuma V.main.sup.ps.ill uju+ma 59 vaba A.pos.sg.part vaba+0 77 varsti D varsti+0 25 väga D väga+0 32 väga D väga+0 [82 rows x 3 columns] #Sortimine morfomärgendi järgi: >>> morfo.sort_values(by="Liik ja vorm").head(10) Sõna Liik ja vorm Tüvi 43 päikseline A.pos.sg.nom 45 soe A.pos.sg.nom soe+0 33 hea A.pos.sg.nom hea+0 26 ilus A.pos.sg.nom ilus+0 59 vaba A.pos.sg.part vaba+0 80 parim A.super.sg.nom parim+0 77 varsti D varsti+0 3 Kuidas D kuidas+0 47 seal D seal+0 32 väga D väga+0 #Sõnad järjestatuna morfomärgendi järgi ja loendi kujul: >>> morfo.sort_values(by="Liik ja vorm").Sõna.values.tolist() ['päikseline', 'soe', 'hea', 'ilus', 'vaba', 'parim', 'varsti', 'Kuidas', 'seal', 'väga', 'alati', 'Kas', 'väga', 'hästi', 'Kas', 'Tere', 'ja', 'ja', 'ja', 'ja', 'ja', 'et', 'et', 'sul', 'sul', 'Sinu', 'minuga', 'Ma', 'See', 'ma', 'ma', 'Ma', 'Ma', 'ma', 'Ma', 'kõik', 'sa', 'sind', 'Madrid', 'Suvel', 'Juuli', 'meres', 'Juulis', 'Juulis', 'sõber', 'algus', 'ilm', 'linn', 'aega', 'Hispaaniasse', 'Mari', 'igatsesin', 'näeme', 'tahan', 'puhkan', 'lähen', 'loodan', 'loodan', 'tahan', 'tahad', 'on', 'on', 'läheb', 'on', 'on', 'on', 'minna', 'külastada', 'tulla', 'matkama', 'ujuma', '!', '!', '!', '!', '!', '!', '.', '.', '?', '?', '?'] #Sõnade algustähed järjestatuna morfomärgendite järgi (esmalt adjektiivid e omadussõnad jne), loend: >>> [Algustäht[0] for Algustäht in morfo.sort_values(by="Liik ja vorm").Sõna.values.tolist()] ['p', 's', 'h', 'i', 'v', 'p', 'v', 'K', 's', 'v', 'a', 'K', 'v', 'h', 'K', 'T', 'j', 'j', 'j', 'j', 'j', 'e', 'e', 's', 's', 'S', 'm', 'M', 'S', 'm', 'm', 'M', 'M', 'm', 'M', 'k', 's', 's', 'M', 'S', 'J', 'm', 'J', 'J', 's', 'a', 'i', 'l', 'a', 'H', 'M', 'i', 'n', 't', 'p', 'l', 'l', 'l', 't', 't', 'o', 'o', 'l', 'o', 'o', 'o', 'm', 'k', 't', 'm', 'u', '!', '!', '!', '!', '!', '!', '.', '.', '?', '?', '?'] #Uus tulp, kus on sõnade esitähed: >>> morfo["Algustäht"] = [Algustäht[0] for Algustäht in morfo.Sõna] >>> morfo.head() Sõna Liik ja vorm Tüvi Algustäht 0 Tere I tere+0 T 1 Mari S.prop.sg.nom Mari+0 M 2 ! Z.Exc ! ! 3 Kuidas D kuidas+0 K 4 sul P.sg.ad sina+l s #Tühikuid sisaldava nimega tulbast aga pole nii lihtne esitähti eraldada... >>> morfo["Sõnaliik"] = [Sõnaliik[0] for Sõnaliik in morfo.Liik ja vorm] File "", line 1 morfo["Sõnaliik"] = [Sõnaliik[0] for Sõnaliik in morfo.Liik ja vorm] ^ SyntaxError: invalid syntax #Vahetan tulba nime: >>> morfo.rename(columns={"Liik ja vorm":"Liik_vorm"}, inplace=True) >>> morfo.head() Sõna Liik_vorm Tüvi Algustäht 0 Tere I tere+0 T 1 Mari S.prop.sg.nom Mari+0 M 2 ! Z.Exc ! ! 3 Kuidas D kuidas+0 K 4 sul P.sg.ad sina+l s #Uus tulp, kus sõnaliigid muust märgendusest eraldatud: >>> morfo["Sõnaliik"] = [Sõnaliik[0] for Sõnaliik in morfo.Liik_vorm] >>> morfo.head() Sõna Liik_vorm Tüvi Algustäht Sõnaliik 0 Tere I tere+0 T I 1 Mari S.prop.sg.nom Mari+0 M S 2 ! Z.Exc ! ! Z 3 Kuidas D kuidas+0 K D 4 sul P.sg.ad sina+l s P #Sõnade pikkused: >>> [len(Sõnapikkus) for Sõnapikkus in morfo.Sõna] [4, 4, 1, 6, 3, 5, 1, 2, 6, 2, 4, 2, 5, 1, 5, 2, 6, 2, 2, 5, 5, 12, 1, 6, 2, 4, 4, 4, 2, 3, 2, 5, 4, 3, 1, 2, 5, 9, 5, 5, 1, 3, 2, 10, 2, 3, 6, 4, 1, 2, 5, 5, 5, 2, 7, 1, 3, 3, 2, 4, 4, 6, 1, 3, 2, 5, 5, 6, 1, 2, 9, 4, 2, 2, 6, 2, 5, 6, 1, 4, 5, 5] #Uus, sõnapikkuste tulp: >>> morfo["Pikkus"] = [len(Sõnapikkus) for Sõnapikkus in morfo.Sõna] >>> morfo.head() Sõna Liik_vorm Tüvi Algustäht Sõnaliik Pikkus 0 Tere I tere+0 T I 4 1 Mari S.prop.sg.nom Mari+0 M S 4 2 ! Z.Exc ! ! Z 1 3 Kuidas D kuidas+0 K D 6 4 sul P.sg.ad sina+l s P 3 #Leian pikima ja lühima sõna ning keskmise sõnapikkuse: >>> morfo.Pikkus.max() 12 >>> morfo.Pikkus.min() 1 >>> morfo.Pikkus.mean() 3.7682926829268291 #Sordin sõnapikkuse järgi: >>> morfo.sort_values(by="Pikkus").head() Sõna Liik_vorm Tüvi Algustäht Sõnaliik Pikkus 40 . Z.Fst . . Z 1 48 ! Z.Exc ! ! Z 1 34 . Z.Fst . . Z 1 55 ! Z.Exc ! ! Z 1 22 ! Z.Exc ! ! Z 1 >>> morfo.sort_values(by="Pikkus", ascending=False).head() Sõna Liik_vorm Tüvi Algustäht \ 21 Hispaaniasse S.prop.sg.ill H 43 päikseline A.pos.sg.nom p 37 külastada V.main.inf külasta+da k 70 igatsesin V.main.indic.impf.ps1.sg.ps.af igatse+sin i 54 matkama V.main.sup.ps.ill matka+ma m Sõnaliik Pikkus 21 S 12 43 A 10 37 V 9 70 V 9 54 V 7 #Leian vähemalt kuuetähelised sõnad: >>> (morfo.Pikkus > 5).head() 0 False 1 False 2 False 3 True 4 False Name: Pikkus, dtype: bool >>> morfo[morfo.Pikkus > 5] Sõna Liik_vorm Tüvi Algustäht \ 3 Kuidas D kuidas+0 K 8 loodan V.main.indic.pres.ps1.sg.ps.af loot+n l 16 puhkan V.main.indic.pres.ps1.sg.ps.af p 21 Hispaaniasse S.prop.sg.ill H 23 Madrid S.com.pl.nom M 37 külastada V.main.inf külasta+da k 43 päikseline A.pos.sg.nom p 46 Juulis S.com.sg.in juuli+s J 54 matkama V.main.sup.ps.ill matka+ma m 61 Juulis S.com.sg.in juuli+s J 67 minuga P.sg.kom mina+ga m 70 igatsesin V.main.indic.impf.ps1.sg.ps.af igatse+sin i 74 loodan V.main.indic.pres.ps1.sg.ps.af loot+n l 77 varsti D varsti+0 v Sõnaliik Pikkus 3 D 6 8 V 6 16 V 6 21 S 12 23 S 6 37 V 9 43 A 10 46 S 6 54 V 7 61 S 6 67 P 6 70 V 9 74 V 6 77 D 6 #Leian vähemalt viietähelised nimisõnad: >>> morfo[(morfo.Pikkus > 4) & (morfo.Sõnaliik=="S")] Sõna Liik_vorm Tüvi Algustäht Sõnaliik Pikkus 14 Suvel S.com.sg.ad suvi+l S S 5 21 Hispaaniasse S.prop.sg.ill H S 12 23 Madrid S.com.pl.nom M S 6 38 Juuli S.com.sg.gen juuli+0 J S 5 39 algus S.com.sg.nom algus+0 a S 5 46 Juulis S.com.sg.in juuli+s J S 6 52 meres S.com.sg.in meri+s m S 5 61 Juulis S.com.sg.in juuli+s J S 6 81 sõber S.com.sg.nom sõber+0 s S 5 #Lühim nimisõna: >>> morfo[morfo.Sõnaliik=="S"].Pikkus.min() 3 #Nimisõnade arv: >>> len(morfo[morfo.Sõnaliik=="S"]) 13 #Vähemalt viietäheliste sõnade arv: >>> len(morfo[morfo.Pikkus > 4]) 31 #Alla viietäheliste sõnade arv: >>> len(morfo[morfo.Pikkus < 5]) 51 #Tähemärkide arv (tühikuteta): >>> (morfo.Pikkus).sum() 309 #Kui mitu sõnaliiki on esindatud? >>> len(morfo.groupby("Sõnaliik")) 8 #Kui mitu morfoloogiliselt erinevat sõnavormi tekstis leidub? >>> len(morfo.groupby("Liik_vorm")) 31 "Kui mitu erinevat algustähte esineb? >>> len(morfo.groupby("Algustäht")) 24 #Iga sõnaliigi pikim sõna: >>> morfo.groupby("Sõnaliik").Pikkus.max() Sõnaliik A 10 D 6 I 4 J 2 P 6 S 12 V 9 Z 1 Name: Pikkus, dtype: int64 #Kui palju on erinevate sõnaliikide sõnu? >>> morfo.groupby("Sõnaliik").Sõna.count() Sõnaliik A 6 D 9 I 1 J 7 P 15 S 13 V 20 Z 11 Name: Sõna, dtype: int64 #Eri tähega algavate sõnade keskmised pikkused: >>> morfo.groupby("Algustäht").Pikkus.mean() Algustäht ! 1.000000 . 1.000000 ? 1.000000 H 12.000000 J 5.666667 K 4.000000 M 3.000000 S 4.000000 T 4.000000 a 4.666667 e 2.000000 h 4.000000 i 5.333333 j 2.000000 k 6.500000 l 5.200000 m 4.142857 n 5.000000 o 2.000000 p 7.000000 s 3.428571 t 5.000000 u 5.000000 v 4.500000 Name: Pikkus, dtype: float64 #Iga sõnaliigi sõnad ühel real, sidekriipsuga eraldatud: >>> morfo.groupby("Sõnaliik")["Sõna"].apply(lambda m: "-".join(m)) Sõnaliik A ilus-hea-päikseline-soe-vaba-parim D Kuidas-hästi-väga-alati-väga-seal-Kas-Kas-varsti I Tere J et-ja-ja-ja-ja-ja-et P sul-Ma-kõik-ma-ma-Ma-See-Ma-sul-sa-minuga-Ma-s... S Mari-Suvel-Hispaaniasse-Madrid-linn-ilm-Juuli-... V läheb-loodan-on-puhkan-tahan-minna-on-on-tahan... Z !-?-!-!-.-.-!-!-?-?-! Name: Sõna, dtype: object #Kas mõni sõna kordub? >>> morfo.groupby("Sõna").Sõna.count() Sõna ! 6 . 2 ? 3 Hispaaniasse 1 Juuli 1 Juulis 2 Kas 2 Kuidas 1 Ma 4 Madrid 1 Mari 1 See 1 Sinu 1 Suvel 1 Tere 1 aega 1 alati 1 algus 1 et 2 hea 1 hästi 1 igatsesin 1 ilm 1 ilus 1 ja 5 kõik 1 külastada 1 linn 1 loodan 2 läheb 1 lähen 1 ma 3 matkama 1 meres 1 minna 1 minuga 1 näeme 1 on 5 parim 1 puhkan 1 päikseline 1 sa 1 seal 1 sind 1 soe 1 sul 2 sõber 1 tahad 1 tahan 2 tulla 1 ujuma 1 vaba 1 varsti 1 väga 2 Name: Sõna, dtype: int64 #Kustutan tulba "Tüvi", et vaade oleks kompaktsem: >>> del morfo["Tüvi"] >>> morfo.head() Sõna Liik_vorm Algustäht Sõnaliik Pikkus 0 Tere I T I 4 1 Mari S.prop.sg.nom M S 4 2 ! Z.Exc ! Z 1 3 Kuidas D K D 6 4 sul P.sg.ad s P 3 #Loen sisse teise tabeli, mis seletab lahti morfoloogiliste märgendite tähenduse: >>> seletused = pd.read_csv("seletused.txt") >>> seletused = seletused.sort_values(by="Märgend") >>> seletused.head() Märgend Seletus 15 A.pos.sg.nom omadussõna algvõrre A nimetavas 21 A.pos.sg.part omadussõna algvõrre A osastavas 29 A.super.sg.nom omadussõna ülivõrre A nimetavas 3 D määrsõna 0 I hüüdsõna #Liidan tabelid: >>> morfokoos = morfo.merge(seletused, left_on="Liik_vorm", right_on="Märgend") >>> morfokoos.head() Sõna Liik_vorm Algustäht Sõnaliik Pikkus Märgend \ 0 Tere I T I 4 I 1 Mari S.prop.sg.nom M S 4 S.prop.sg.nom 2 ! Z.Exc ! Z 1 Z.Exc 3 ! Z.Exc ! Z 1 Z.Exc 4 ! Z.Exc ! Z 1 Z.Exc Seletus 0 hüüdsõna 1 pärisnimi A nimetavas 2 hüüumärk 3 hüüumärk 4 hüüumärk #Kustutan ühistabelist üleliigsed tulbad ja kuvan uuesti: >>> del morfokoos["Algustäht"] >>> del morfokoos["Pikkus"] >>> del morfokoos["Märgend"] >>> morfokoos.head(20) Sõna Liik_vorm Seletus 0 Tere I hüüdsõna 1 Mari S.prop.sg.nom pärisnimi A nimetavas 2 ! Z.Exc hüüumärk 3 ! Z.Exc hüüumärk 4 ! Z.Exc hüüumärk 5 ! Z.Exc hüüumärk 6 ! Z.Exc hüüumärk 7 ! Z.Exc hüüumärk 8 Kuidas D määrsõna 9 hästi D määrsõna 10 väga D määrsõna 11 alati D määrsõna 12 väga D määrsõna 13 seal D määrsõna 14 Kas D määrsõna 15 Kas D määrsõna 16 varsti D määrsõna 17 sul P.sg.ad asesõna A alalütlevas 18 sul P.sg.ad asesõna A alalütlevas 19 sul P.sg.ad asesõna A alalütlevas #Sordin tabeli seletuse järgi: >>> morfokoos.sort_values(by="Seletus").head() Sõna Liik_vorm Seletus 46 et J.sub alistav sidend 45 et J.sub alistav sidend 20 sul P.sg.ad asesõna A alalütlevas 19 sul P.sg.ad asesõna A alalütlevas 17 sul P.sg.ad asesõna A alalütlevas #Loen kokku erineva märgendiga sõnad: >>> morfokoos.groupby("Liik_vorm").Sõna.count().values.tolist() [4, 1, 1, 9, 1, 5, 2, 4, 1, 1, 10, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 6, 1, 5, 3, 2, 6, 2, 3] #Eri tüüpi sõnade osakaalud: >>> morfokoos.groupby("Liik_vorm").Sõna.count()/82 Liik_vorm A.pos.sg.nom 0.048780 A.pos.sg.part 0.012195 A.super.sg.nom 0.012195 D 0.109756 I 0.012195 J.crd 0.060976 J.sub 0.024390 P.sg.ad 0.048780 P.sg.gen 0.012195 P.sg.kom 0.012195 P.sg.nom 0.121951 P.sg.part 0.012195 S.com.pl.nom 0.012195 S.com.sg.ad 0.012195 S.com.sg.gen 0.012195 S.com.sg.in 0.036585 S.com.sg.part 0.012195 S.prop.sg.ill 0.012195 S.prop.sg.nom 0.012195 V.main.indic.impf.ps1.sg.ps.af 0.012195 V.main.indic.pres.ps1.pl.ps.af 0.012195 V.main.indic.pres.ps1.sg.ps.af 0.073171 V.main.indic.pres.ps2.sg.ps.af 0.012195 V.main.indic.pres.ps3.sg.ps.af 0.060976 V.main.inf 0.036585 V.main.sup.ps.ill 0.024390 Z.Exc 0.073171 Z.Fst 0.024390 Z.Int 0.036585 Name: Sõna, dtype: float64 #Vahetan andmetüübi dataframe'iks ja kuvan eri tüüpi sõnade sagedused: >>> osakaalud = morfokoos.groupby("Liik_vorm").Sõna.count().to_frame() >>> osakaalud Sõna Liik_vorm A.pos.sg.nom 4 A.pos.sg.part 1 A.super.sg.nom 1 D 9 I 1 J.crd 5 J.sub 2 P.sg.ad 4 P.sg.gen 1 P.sg.kom 1 P.sg.nom 10 P.sg.part 1 S.com.pl.nom 1 S.com.sg.ad 1 S.com.sg.gen 1 S.com.sg.in 3 S.com.sg.part 1 S.prop.sg.ill 1 S.prop.sg.nom 1 V.main.indic.impf.ps1.sg.ps.af 1 V.main.indic.pres.ps1.pl.ps.af 1 V.main.indic.pres.ps1.sg.ps.af 6 V.main.indic.pres.ps2.sg.ps.af 1 V.main.indic.pres.ps3.sg.ps.af 5 V.main.inf 3 V.main.sup.ps.ill 2 Z.Exc 6 Z.Fst 2 Z.Int 3 #Tekitan juurde osakaalu tulba: >>> osakaalud["osakaal"] = osakaalud["Sõna"]/osakaalud.Sõna.sum() >>> osakaalud Sõna osakaal Liik_vorm A.pos.sg.nom 4 0.050633 A.pos.sg.part 1 0.012658 A.super.sg.nom 1 0.012658 D 9 0.113924 I 1 0.012658 J.crd 5 0.063291 J.sub 2 0.025316 P.sg.ad 4 0.050633 P.sg.gen 1 0.012658 P.sg.kom 1 0.012658 P.sg.nom 10 0.126582 P.sg.part 1 0.012658 S.com.pl.nom 1 0.012658 S.com.sg.ad 1 0.012658 S.com.sg.gen 1 0.012658 S.com.sg.in 3 0.037975 S.com.sg.part 1 0.012658 S.prop.sg.ill 1 0.012658 S.prop.sg.nom 1 0.012658 V.main.indic.impf.ps1.sg.ps.af 1 0.012658 V.main.indic.pres.ps1.pl.ps.af 1 0.012658 V.main.indic.pres.ps1.sg.ps.af 6 0.075949 V.main.indic.pres.ps2.sg.ps.af 1 0.012658 V.main.indic.pres.ps3.sg.ps.af 5 0.063291 V.main.inf 3 0.037975 V.main.sup.ps.ill 2 0.025316 Z.Exc 6 0.075949 Z.Fst 2 0.025316 Z.Int 3 0.037975 #Salvestan tulemuse: >>> osakaalud.to_csv("osakaalud.txt")