Telepítse a műhelyhez szükséges csomagokat
A leckéhez szükséges programok telepítéséhez kövesse a Telepítési dokumentum utasításait. Ha problémákat talál, kérjük, hozzon létre egy probléma a címkével Magas prioritás.
A létesítmények ellenőrzése
A _includes/scripts könyvtárban található egy forgatókönyv nevű check_env.py. Ellenőrzi az Anaconda telepített verziójának működését.
Alapértelmezés szerint a Data Carpentry nem követeli meg az emberektől, hogy töltsék le a teljes lerakatot az összes szkript és csonk mellett. Ezért oktatóként el kell döntenie, hogyan szeretné átadni ezt a szkriptet a hallgatóknak, ha úgy dönt. Használatához a hallgatók navigálhatják termináljukat a _includes/szkriptekhez, és futtathatják a következőket:
Ha a hallgatók AssertionError-t kapnak, az tájékoztatja Önt arról, hogyan segíthet a telepítés kijavításában. Ellenkező esetben elmondja, hogy a rendszer készen áll a Data Carpentry használatára!
01-short-Introduction-to-Python
Kihívások a tincsekkel kapcsolatban
Mi történik, ha a_tuple [2] = 5 futtat ?
Mivel a tuple változhatatlan, nem támogatja az elem hozzárendelését. A listaelemek egyedileg módosíthatók.
Mit mond a type (a_tuple) az a_tuple-ről ?
Szótár kihívások
- Szótárak módosítása: 2. Jelölje ki újra a második értéket.
Feltétlenül tisztázza azt is, hogy a "második érték" elérése a kulcs nevéről szól. Adjon például rev [10] = "tíz" -t annak tisztázására, hogy nem a pozícióról van szó.
02-kezdve-adatokkal
Megjegyzés a hibákról
Pandas surveys_df ['weight']. A Describe () hibát adhat vissza futás közben.
Kihívások a DataFrame-ekkel kapcsolatban
Oszlopnevek. (Opcionális: display surveys_df.columns [4] = "plotid". Az index nem változtatható; az előző epizódhoz hasonlít. A név adaptálását az átnevezési függvény végzi: surveys_df.rename (oszlop =))
felmérések_df.head (). Továbbá, mit jelent a surveys_df.head (15) ?
Mutassa meg az első 5 sort. Mutassa meg az első 15 sort.
Mutassa meg az utolsó 15 sort.
felmérések_df.alakja. Vegye figyelembe az alakzat kimenetét - Milyen formátumú az attribútum kimenete, amely visszaadja a DataFrame alakját?
Kihívások a statisztikai adatok kiszámításával kapcsolatban
Hozzon létre egy listát a plot_id webhelyazonosítókról, amelyek szerepelnek a felmérések_felmérés adatai között. Hívjuk ezt a listát site_names néven. Hány hely van az adatokban? Hány faj van az adatokban?
plot_names = pd.unique (felmérések_df ["plot_id"]). A webhely-azonosítók száma: plot_names.size vagy len (plot_names). Fajok száma az adatokban: len (pd.unique (Survey_df ["faj"]))
Mi a különbség a len (plot_names) és a surveys_df ['plot_id'] között. Nunique () ?
Mindkettő ugyanazt a kimenetet eredményezi, amely az egyedi értékek megszerzésének alternatív módjaként szolgál. az apáca ötvözi a számlálást az egyedi értékek kinyerésével.
Klaszter kihívások
Hány megfigyelés nő F és hány férfi M ?
Mi történik, ha két oszlopot csoportosít a következő utasítás segítségével, majd felveszi az átlagértékeket?
Az átlagérték kiszámításra kerül a plot_id és a sex minden egyes kombinációjára. Ne feledje, hogy az átlagnak nincs értelme minden változónál, ezért oszloponként adhatja meg: ha például meg szeretné tudni az utolsó regisztrált évet, akkor a lábak hosszának mediánját és az egyes kombinációk súlyának átlagértékét cselekmény és nem:
- Kiszámítja az egyes plot_id súlysúlyának leíró statisztikáit .
Milyen más módon lehet létrehozni a fajok listáját és társítani azt az adatminták számlálásának számával?
Ahelyett, hogy a kapott csoportból lekérné, majd megszámolná az eredményül kapott oszlopokat, a groupby-val együtt is számolhat (az összes oszlopon), és az így kapott DataFrame-ből összeállíthatja a kijelölést: surveys_df.groupby ('species_id'). Count () ["record_id"]
Grafikai kihívások
- Készítsen grafikont a faj átlagos súlyáról telephelyenként.
- Hozzon létre egy grafikont az összes hím és a teljes nőstény teljes adatkészletéről.
03-index-szelet-részhalmaz
Tipp: Használja a .head () metódust ebben a leckében a képernyő tisztántartása érdekében. Arra ösztönözze a tanulókat, hogy teszteljék a .head () nélküli és anélküli parancsokat, hogy megerősítsék az eszköz hasznosságát, majd preferenciáiktól függően használják vagy sem. Például, ha egy hallgató aggodalmát fejezi ki a gépeléssel való lépést illetően, közölje vele, hogy elkerülheti a .head () -t, de arra fogja használni, hogy több korábbi kódsor látható maradjon.
Kihívások az indexeléssel kapcsolatban
Milyen értéket ad vissza a következő kód? ide: [0]
1, mivel a Python a 0 elemmel kezdődik (Matlab felhasználók számára: ez más!)
Milyen értéket hoz ez vissza? 5-ig]
A fenti példában az [5] hívása hibát eredményez. Miért?
A lista nem tartalmaz 5 indexű elemeket (0-ról 4-re halad).
Mit szólsz ehhez? a [len (a)]
Kihívások a ranglétrán
Mi történik, ha a következő kódot futtatja?
surveys_df [0: 1] csak az első elemet választja ki
surveys_df [: 4] az első tétel kiválasztása feleslegessé teszi a 0 írását
surveys_df [-1:] visszaszámolhat
Tipp: Kiválaszthatja az összes N. sorot is: felmérések_df [1: 10: 2]. Tehát hogyan értelmezi a surveys_df [: - 1] ?
Mi történik, ha ezt futtatja: surveys_df.iloc [0: 4, 1: 4] és surveys_df.loc [0: 4, 1: 4]? Milyen különbséget lát a közvetlenül megelőző parancsok eredményei között?
Ellenőrizze a pozíciót vagy a nevet. A második lehetőség hasonló a kulcsnevek szótárának lekérdezéséhez. Az 1: 4 oszlopnevek nem léteznek, ami hibát eredményez. Ellenőrizze a felmérések_df.loc [0: 4] és a felmérések_df.iloc [0: 4] közötti különbséget is
Haladó kihívások lekérdezések
Válassza ki a DataFrame felmérések_df sorainak azon részhalmazát, amely az 1999-es év adatait tartalmazza, és amely legfeljebb 8-as súlyértékeket tartalmaz. Hány sort kapott ennek eredményeként? Hány sort kapott a párod?
surveys_df [(surveys_df ["év"] == 1999) & (felmérések_df ["súly"]; ha csak a végső szám érdekel, akkor a True értékek összege is használható: sum ((surveys_df [" év "] == 1999) & (felmérések_df [" súly "]
A Python isin függvényével lekérdezhet egy DataFrame-et az alábbi értéklista alapján: surveys_df [surveys_df ['species_id']. Isin ([listGoesHere])]. Az isin függvény segítségével keresse meg az összes olyan ábrát, amely egy adott fajt tartalmaz a DataFrame felmérések_fájlban. Hány rekord tartalmazza ezeket az értékeket?
Például használja a PB-t és a PL-t: surveys_df [surveys_df ['species_id']. Isin (['PB', 'PL'])] ['plot_id']. Az Unique () felsorolja azokat az összes parcellát, amelyeken részt vesznek ezekben faj. A surveys_df [surveys_df ['species_id']. Isin (['PB', 'PL'])] paranccsal. Alakkal megkaphatja a rekordok számát.
Kísérletezzen más lekérdezésekkel. Hozzon létre egy lekérdezést, amely megtalálja az összes sort, amelynek súlya nagyobb vagy egyenlő, mint 0.
Tipp: Itt bemutathatja, hogy ezek a szegmentálási műveletek valójában logikai indexelési műveleteken alapulnak (a lecke következő szakasza). A szűrés minden rekordnál jelzi, hogy teljesíti-e (Igaz) vagy nem (Hamis) a feltételt. A szegmentálást az egyes rekordok True/False értékének értelmezésével végezzük.
a Pythonban fel lehet használni, hogy mit kapjunk szemben a Pythonban megadott kijelölt adatokra. Ezzel egyenértékű nincs bent. Írjon olyan lekérdezést, amely a felmérés adataiban kiválasztja az „M” vagy „F” kivételével az összes nemet tartalmazó sort .
Maszk kihívások
- Hozzon létre egy új DataFrame objektumot, amely csak olyan megfigyeléseket tartalmaz, amelyek értékei szerepelnek a sex oszlopban ne legyen az nő vagy férfi. Rendelje hozzá az új DataFrame nem minden egyes értékét egy új „x” értékhez. Meghatározza az alkészlet nullértékeinek teljes számát.
A Nan értékek összegét ellenőrizheti az összeg (surveys_df ['sex']. Isnull ()) segítségével, amely megegyezik a nem női és férfi rekordok számával .
- Hozzon létre egy új DataFrame-et, amely csak olyan megfigyeléseket tartalmaz, amelyek nemi oszlopainak értéke férfi vagy női, és ahol a súlyérték nagyobb, mint 0. Ezután hozzon létre egy halmozott oszlopdiagramot az ábránként az átlagos tömegből, a férfiak és a nők közötti minden cselekmény.
Tipp: Mivel tudjuk, hogy az összes többi érték Nan, ezért kiválaszthatunk minden nem null értéket is (ez csak egy előnézet, erről a következő leckében még többet fogunk tudni):
Az unstack parancs miatt azonban a jelmagyarázat fejléce két szintet tartalmaz. Eltávolításához az oszlopneveket le kell egyszerűsíteni:
04-data-types-and-format
Kihívások a változó árakkal
- Próbálja konvertálni a plot_id oszlopot erre: úszó A surveys_df.plot_id.astype ("float") használatával. Ezután megpróbálja a súlyt a-ra konvertálni egész szám. Mit mond Panda? Mi a baj ott?
A pandák nem képesek konvertálni a típusú adatokat úszó nak nek int ha az oszlop NaN értékeket tartalmaz.
Számla kihívások
- Megszámolja az oszloponként hiányzó értékek számát. Tipp: A .count () módszer megadja oszloponként a nem NA megfigyelések számát. Vizsgálja meg a .isnull () metódust .
Ha a hallgatóknak problémái vannak a kimenet létrehozásával, vagy valami történik vele, akkor van egy „minta kimenet” nevű fájl azokkal az adatokkal, amelyeket elő kell állítaniuk.
05-összevonás-adatok
- Az adatmappában két felmérési adatfájl található: survey2001.csv és survey2002.csv. Olvassa el az adatokat a Pythonban, és kombinálja a fájlokat egy új DataFrame-hez. Készítsen grafikont az átlagos telektömegről, a plot_id-ről, évenként, nemek szerint csoportosítva. Exportálja az eredményeket CSV formátumban, és ellenőrizze, hogy helyesen olvassák-e a Pythonban.
- Hozzon létre egy új DataFrame-et, összekapcsolva a felmérések.csv és species.csv táblázatok tartalmát .
Ezután számítsa ki és ábrázolja az eloszlást:
1. taxon telekenként (az egyes taxonok fajainak száma parcellánként):
A fajok eloszlása (taxonok száma parcellánként) a következőképpen számítható:
Tipp: Lehetséges ábrázolni az egyes taxonok egyedszámát is az egyes ábrákon (halmozott oszlopdiagram):
(különben a jelmagyarázat átfedi az oszlopdiagramot)
2. taxonok nemenként, parcellánként: Rendeljük az „M | F” értékeket a Nan értékekhez (ezeket „x” -re is lehet változtatni):
Taxonok száma minden egyes cselekmény/nem kombináció esetén:
Javaslat (csak vita céljából):
Kiszámítható az egyes taxonok egyedszáma az egyes parcellákon és nemenként:
Valójában ez a grafika nem a legjobb, amit választhatunk, mert nem olvasható ... A fejlesztés első alternatívája a szempontok. A pandák/matplotlib azonban alapértelmezés szerint nem biztosítják őket. Példa a tiszta matplotlib-re (az M | F használatával a meghatározott nemű rekordokhoz):
Jobb lenne azonban Seabornt és Altairt a többváltozós vizualizációk típusaival megadni.
- ASUS Rog Strix G531GT-BQ012, az egyensúlyt kereső játék laptop elemzése - MuyComputer
- Vér és igazság elemzése
- 10 sötét tény Jean-Claude Van Damme De életében10
- 7 nagymama szépségtrükkje a zabpehely felhasználásával
- Kína kezdeményezi az adatbiztonságra vonatkozó globális szabályok megállapítását WSJ - Red Uno de