Kuinka oppia pandoja

Tässä postituksessa hahmotellaan strategiaa “pandajen oppimiseksi”. Niille, jotka eivät tiedä, pandas on tieteellisen Python-ekosysteemin suosituin kirjasto tietojen analysoimiseksi. Panda pystyy suorittamaan monia tehtäviä, mukaan lukien:

  • Monien eri tietomuotojen lukeminen / kirjoittaminen
  • Tietojen alajoukkojen valitseminen
  • Lasketaan rivien ja alasarakkeiden välillä
  • Puuttuvien tietojen etsiminen ja täyttäminen
  • Operaatioiden soveltaminen itsenäisiin ryhmiin datan sisällä
  • Tietojen muuttaminen eri muotoihin
  • Yhdistämällä useita tietojoukkoja yhteen
  • Edistynyt aikasarjatoiminto
  • Visualisointi matplotlibin ja meribornin kautta

Ryhdy asiantuntijaksi

  • Kirjani Master Data Analysis with Python on markkinoiden kattavin teksti oppiaksesi tietojen analysointia Pythonin avulla ja mukana on yli 300 harjoitusta ja projektia.
  • Ilmoittautuminen ILMAISEKSI Intro Pandas -kurssille
  • Seuraa minua Twitterissä @TedPetrou päivittäisiä tietotieteellisiä temppujani varten

Vaikka pandot ovat erittäin kykeneviä, se ei tarjoa toimintoja koko datatieteen putkilinjalle. Pandas on tyypillisesti tietojen etsinnässä ja puhdistuksessa käytetty välityökalu, joka on hajautettu tiedon talteenoton ja tallentamisen sekä datan mallinnuksen ja ennustamisen välillä.

Data Science Pipeline

Tyypilliselle datatieteilijälle pandailla on suurin rooli, kun tiedot kulkevat putken läpi. Yksi metriikka tämän määrittämiseksi on Stack Overflow trend -sovelluksen avulla.

Tällä hetkellä pandailla on enemmän aktiivisuutta Stack Overflow -palvelussa kuin millään muulla Python-tietojen tiedekirjasolla, ja se muodostaa hämmästyttävän 1% kaikista uusista kysymyksistä, jotka esitetään koko sivustolla.

Pino Ylivuoto Ylikäyttö

Yllä olevasta taulukosta on todisteita siitä, että monet ihmiset käyttävät ja ovat myös hämmentyneitä pandoista. Olen vastannut noin 400 kysymykseen pandasta Stack Overflow -sivustolla ja näen ensi käden kuinka heikko ymmärrys kirjasto on. Kaikelle suurenmoisuudelle, jonka Stack Overflow on antanut ohjelmoijille, on huomattava haittapuoli. Vastauksen löytämisen välitön ilahduttaminen on massiivinen estäjä omien dokumenttien ja muiden resurssien käsittelyyn. Mielestäni olisi hyvä idea omistaa muutama viikko vuodessa, jotta Stack Overflow -sovellusta ei käytetä.

Vaiheittainen opas pandoiden oppimiseen

Pari viikkoa sitten postitin yksinkertaisen oppaan r / datascience-alaluokkaan, kun joku pyysi apua pandaan harjoitteluun. Seuraava tarkentaa kyseisen viestin tietoja.

Aluksi sinun ei pitäisi oikeasti olla tavoitetta 'oppia pandeja'. Vaikka tieto siitä, kuinka suorittaa toiminnot kirjastossa, on hyödyllistä, se ei ole läheskään yhtä hyödyllistä kuin pandoiden oppiminen tavoilla, joita käytät tosiasiallisesti tietoanalyysin aikana. Voit segmentoida oppimisen kahteen erilliseen luokkaan:

  • Panda-kirjaston oppiminen riippumaton tietoanalyysistä
  • Oppitaan käyttämään pandoja samalla tavalla kuin todellisen data-analyysin aikana

Ero näiden kahden välillä on kuin oppiminen näkemään muutama pieni puoli oksaa menemään metsään ja sahaamaan puita. Tehdään yhteenveto näistä kahdesta lähestymistavasta ennen yksityiskohtien selvittämistä.

Panda-kirjaston oppiminen tietoanalyysistä riippumattomana: Tämä lähestymistapa sisältää ensisijaisesti pandoiden virallisen dokumentaation lukemisen ja mikä tärkeintä, tutkimuksen.

Oppiminen käyttämään Pandaa samalla tavalla kuin todellisen data-analyysin aikana: Tämä lähestymistapa sisältää reaalimaailman datan löytämisen tai keräämisen ja kokonaisvaltaisen data-analyysin suorittamisen. Yksi parhaista paikoista tietojen löytämiseksi on Kaggle-tietoaineistot. Tämä ei ole Kagglen koneoppimiskomponentti, jota suosittelen voimakkaasti välttämään, kunnes olet mukavammin pandassa.

Vuorotteleva lähestymistapa

Matkan aikana, jonka aikana opit tekemään data-analyysiä pandojen kanssa, sinun tulisi vuorotellen oppia dokumentoinnin perusteet ja niiden soveltaminen tosielämän tietoaineistossa. Tämä on erittäin tärkeää, koska on helppo oppia juuri niin paljon pandeja suorittamaan suurin osa tehtävistäsi ja sitten luottaa vain näihin perusteisiin liian voimakkaasti, kun edistyneempiä toimintoja on olemassa.

Aloita dokumentaatiosta

Jos et ole koskaan työskennellyt pandien kanssa aikaisemmin, mutta sinulla on riittävä käsitys Pythonin perustasosta, ehdotan aloittamista pandan virallisesta dokumentaatiosta. Se on erittäin perusteellinen ja nykyisessä tilassaan 2 195 sivua (varovainen, linkki on kokonaan pdf-muodossa). Jopa sen valtavan koon takia, dokumentaatio ei todellakaan kata kaikkia toimenpiteitä eikä varmasti kata kaikkia erilaisia ​​parametrikombinaatioita, joita voit käyttää pandan toiminnoissa / menetelmissä.

Hyödyntäminen dokumentaatiosta

Saadaksesi kaiken irti dokumentaatiosta, älä vain lue sitä. Dokumentaatiosta on noin 15 osaa, jotka ehdotan kattavan. Luo jokaiselle osiolle uusi Jupyter-muistikirja. Lue tämä blogikirjoitus Data Campilta, jos et tunne Jupyter-muistikirjoja.

Ensimmäinen Jupyter-muistikirjasi

Aloita kohdasta Johdanto tietorakenteisiin. Avaa tämä sivu Jupyter-muistikirjan rinnalla. Kun luet dokumentaatiota, kirjoita koodi (älä kopioi sitä) ja suorita se muistikirjaan. Koodin suorittamisen aikana muista tutkia toiminnot ja kokeilla uusia tapoja käyttää niitä.

Jatka osiossa Tietojen indeksointi ja valinta. Tee uusi Jupyter-muistikirja ja kirjoita, suorita ja tutkia uudelleen oppimiasi erilaisia ​​toimintoja. Tietojen valinta on yksi hämmentävimmistä asioista, joita panda-käyttäjät alkavat käsittää. Kirjoitin pitkän stack overflow -viestin .loc vs.iloc -sivulle, jonka haluat ehkä lukea vielä kerran.

Näiden kahden osan jälkeen sinun on ymmärrettävä DataFrame-kehyksen ja sarjan komponentit ja osaa valita eri tiedon osajoukot. Nyt lukekaa 10 minuuttia pandasta saadaksesi laajemman yleiskuvan useista muista hyödyllisistä toiminnoista. Kuten kaikki osat, tee uusi muistikirja.

Paina vaihto + välilehti + välilehti saadaksesi ohjeita Jupyter-muistikirjaan

Painetaan jatkuvasti vaihtovälilehteä + välilehti + välilehti, kun käytän pandoja Jupyter-kannettavassa. Kun kohdistin asetetaan nimen sisään tai minkä tahansa voimassa olevan Pythonin jälkeisiin suluihin, kyseisen objektin dokumentaatio ponnahtaa pieneen vieritettävään ruutuun. Tämä ohjekenttä on minulle arvoton, koska on mahdotonta muistaa kaikkia erilaisia ​​parametrien nimiä ja niiden syöttötyyppejä.

Painamalla shift + välilehti + välilehti paljastat pinomenetelmän ohjeet

Voit myös painaa suoraan pisteen jälkeen olevaa välilehteä saadaksesi kaikkien käytettävissä olevien kohteiden pudotusvalikon

Jos painat välilehteä DataFrame-kehyksen jälkeen, luetellaan yli 200 käytettävissä olevaa objektia

Jos nautit tästä artikkelista, harkitse VIP-passin hankkimista! joka sisältää kaiken nykyisen ja tulevan materiaalini yhdellä alhaisella hinnalla.

Asiakirjojen merkittävä haittapuoli

Vaikka dokumentaatio on erittäin perusteellista, se ei tee hyvää työtä opettamalla oikein suorittaa data-analyysi oikeilla tiedoilla. Kaikki tiedot on kerätty tai satunnaisesti luotu. Todellisen datan analyysiin sisältyy myös useita pandoja (toisinaan kymmeniä), jotka on koottu yhteen. Et koskaan saa altistumista tälle asiakirjoista. Dokumentaatio opettaa mekaanisen lähestymistavan pandajen oppimiseen, jossa yksi menetelmä opitaan erillään muista.

Ensimmäinen tietoanalyysi

Näiden dokumentaation kolmen osan jälkeen olet valmis ensimmäiseen altistumiseen todellisiin tietoihin. Kuten aiemmin mainittiin, suosittelen aloittamista Kaggle-tietojoukoista. Voit lajitella eniten äänestäneiden mukaan palauttaaksesi suosituimmat, kuten TMDB 5000 -elokuvien tiedot. Lataa tiedot ja luo uusi Jupyter-muistikirja juuri kyseisestä aineistosta. On epätodennäköistä, että pystyt tässä vaiheessa suorittamaan edistynyttä tietojenkäsittelyä, mutta sinun pitäisi voida harjoittaa sitä, mitä opit dokumentin kolmesta osasta.

Katso ytimiä

Jokaisessa Kagglen tietojoukossa on ydinosa (elokuvan datasetin ytimet). Älä anna nimen "ydin" sekoittaa sinua - se on vain Jupyter-muistikirja, jonka Kaggle-käyttäjä on luonut Pythonissa tai R. Tämä on yksi parhaista oppimismahdollisuuksista. Kun olet tehnyt perustutkimuksen yksin, avaa yksi suosituimmista Python-ytimistä. Lue useita niistä ja ota mielenkiintoisia koodinpätkiä ja aseta se omaan muistikirjaasi.

Jos et ymmärrä jotain, kysy kysymys kommenttiosasta. Voit itse luoda oman ytimen, mutta toistaiseksi haluaisin pysyä työskentelemällä paikallisesti muistikirjoissasi.

Palaa takaisin dokumentaatioon

Kun olet valmis ensimmäisen ytimen, voit palata dokumentaatioon ja suorittaa toisen osan. Tässä on suosittelemani polku dokumentoinnin läpi:

  • Työskentely puuttuvien tietojen kanssa
  • Ryhmittäjä: jaa-käytä-yhdistä
  • Taulukoiden muotoilu ja kääntö
  • Yhdistä, liity ja yhdistä
  • IO-työkalut (teksti, CSV, HDF5,…)
  • Työskentely tekstitietojen kanssa
  • visualisointi
  • Aikasarja / päivämäärätoiminnot
  • Aika Deltas
  • Kategorinen tieto
  • Laskennalliset työkalut
  • MultiIndex / Advanced indeksointi

Tämä järjestys on huomattavasti erilainen kuin dokumentaaation kotisivun vasemmalla puolella esitetty järjestys ja kattaa mielestäni ensin tärkeimmät aiheet. Dokumentaatiossa on useita osia, joita ei ole lueteltu yllä, jotka voit peittää omalla puolellasi myöhemmin.

Kun nämä asiakirjat ja noin 10 Kaggle-ydintä on suoritettu loppuun, sinun pitäisi olla hyvä tapa tuntea olosi mukavaksi sekä pandoiden mekaniikan että todellisen datan analysoinnin kanssa.

Tutkimustietojen analysoinnin oppiminen

Lukemalla monia suosittuja Kaggle-ytimiä opit melko paljon siitä, mikä tekee hyvästä data-analyysistä. Muodollisemman ja tiukemman lähestymistavan saavuttamiseksi suosittelen lukemaan luku 4, Howard Seltmanin verkkokirjan tutkittava tietoanalyysi.

Omien ytimien luominen

Sinun tulisi harkita omien ytimien luomista Kagglelle. Tämä on erinomainen tapa pakottaa itsesi kirjoittamaan puhdasta ja selkeää Jupyter-muistikirjaa. On tyypillistä luoda omia muistikirjoja, jotka ovat hyvin sotkuisia virheellisesti kirjoitetun koodin suhteen ja jota jonkun muun (kuten tulevaisuuden itsesi) on mahdotonta ymmärtää. Kun lähetät ytimen verkkoon, ehdotan sen tekemistä ikään kuin odottaisit nykyisen tai tulevan työnantajasi lukevan. Kirjoita yläosaan tiivistelmä tai tiivistelmä ja selitä jokainen koodilohko merkinnällä. Mitä teen yleensä, on tehdä yhdestä sotkuisesta, tutkivasta muistikirjasta ja kokonaisesta erillisestä muistikirjasta lopputuotteena. Tässä on ydin yhdeltä opiskelijaltani HR-analytiikan tietoaineistossa.

Älä vain opita Pandaa; Hallitse se

Panda-käyttäjän, joka tietää vain tarpeeksi päästäkseen läpi, ja valtavirran käyttäjän, jonka se hallitsee, välillä on valtava ero. On melko tavallista, että tavalliset pandoiden käyttäjät kirjoittavat huonoa koodia, koska toiminnot ovat melko huomattavia ja usein useita tapoja saada sama tulos. On melko helppoa kirjoittaa joitain pandatoimintoja, jotka saavat tuloksen, mutta erittäin tehottomasti.

Jos olet tietojen tutkija, joka työskentelee Pythonin kanssa, käytät todennäköisesti jo pandoja usein, joten tekemällä priorisoinnista sen hallinnan pitäisi luoda paljon arvoa sinulle. Saatavana on myös paljon hauskoja temppuja.

Testaa tietosi pinon ylivuodolla

Et todella tiedä Python-kirjastoa, jos et pysty vastaamaan suurimpaan osaan siihen liittyviin kysymyksiin, jotka esitetään Stack Overflow -sivustolla. Tämä lausunto saattaa olla hiukan liian vahva, mutta yleisesti ottaen Pino ylivuoto tarjoaa hyvän testauspisteen tietyn kirjaston tuntemukselle. Pandaiksi on merkitty yli 50 000 kysymystä, joten sinulla on loputon testipankki pandadatietojesi rakentamiseksi.

Jos et ole koskaan vastannut Stack Overflow -kysymykseen, suosittelen tarkastelemaan vanhempia kysymyksiä, joihin on jo vastauksia, ja yrittää vastata niihin vain käyttämällä dokumentaatiota. Sen jälkeen kun sinusta tuntuu kuin pystyt laatimaan laadukkaita vastauksia, ehdotan, että yritetään vastata vastaamattomiin kysymyksiin. Mikään ei parantanut pandaiden taitojani enemmän kuin vastaaminen Stack Overflow -kysymyksiin.

Omat projektisi

Kaggle-ytimet ovat hienoja, mutta lopulta sinun on käsiteltävä ainutlaatuinen projekti itse. Ensimmäinen askel on tietojen löytäminen, joista on paljon resursseja, kuten:

  • data.gov
  • data.world
  • NYC: n avoin data, Houstonin avoin data, Denverin avoin data - useimmissa suurissa Amerikan kaupungeissa on avoimet dataportaalit

Kun olet löytänyt tutkittavan tietojoukon, jatka samaa prosessia Jupyter-muistikirjan luomisessa ja kun sinulla on hieno lopputuote, lähetä se GitHubiin.

Yhteenveto

Yhteenvetona, käytä dokumentaatiota oppimaan pandoiden toimintojen mekaniikkaa ja käyttämään todellisia tietojoukkoja, alkaen Kaggle-ytimistä, oppimaan, kuinka pandeja käytetään tietojen analysointiin. Testaa lopuksi tietosi Stack Overflow -sovelluksella.

Hanki VIP-pass!

Hanki kaikki nykyinen ja tulevaisuuden materiaalini yhdellä alhaisella hinnalla All Access Pass -sovelluksella! Käytettävissä olevat pääkurssit ovat seuraavat:

  • Harjoitus Python
  • Perustietoanalyysi Pythonilla
  • Master-koneoppiminen Pythonilla