Pandas & NumPy Academy · Oppitunti

DataFrame-olion perustarkastelu

Käyttäkää metodeja head(), tail(), info(), describe() ja shape ymmärtääksenne nopeasti minkä tahansa DataFrame-olion sisällön ja rakenteen.

Oppitunti 4/413 vaihetta

DataFrame-olion perustarkastelu on ilmainen Pandas & NumPy Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Pandas & NumPy Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Pandas & NumPy Academy-kurssilla on yhteensä 4 oppituntia.

Ensimmäiset viisi vaihetta minkä tahansa DataFramen kanssa

Aina kun lataatte uuden aineiston, järjestelmällinen tarkastusjärjestys säästää tuntikausia virheenkorjauksessa. Pandasin työkalupakki tähän sisältää seuraavat toiminnot: head() näyttää ensimmäiset rivit, tail() viimeiset rivit, info() saraketyypit ja tyhjät arvot, describe() tilastot ja shape mitat. Näiden viiden tarkistuksen suorittamiseen kuluu alle minuutti, ja ne paljastavat useimmat datan laatuongelmat heti.

import pandas as pd

# Assume df is loaded from a CSV
print(df.shape)   # (rows, cols)
df.head()         # first 5 rows
df.info()         # dtypes + non-null counts
df.describe()     # statistics

head() ja tail()

df.head(n) palauttaa ensimmäiset n riviä (oletusarvoisesti 5) DataFramena. df.tail(n) palauttaa viimeiset n riviä. Yhdessä ne auttavat varmistamaan, että data jäsennettiin oikein: tarkistakaa, että sarakkeiden nimet ovat otsikkorivillä, numeeriset sarakkeet sisältävät numeroita ja päivämäärämerkkijonoja ei tulkittu väärin. Nämä toiminnot eivät muuta alkuperäistä dataa, vaan palauttavat uudet DataFramet.

import pandas as pd

df = pd.DataFrame({'a': range(20), 'b': range(20, 40)})
print(df.head(3))
#    a   b
# 0  0  20
# 1  1  21
# 2  2  22
print(df.tail(2))
#     a   b
# 18 18  38
# 19 19  39

info(): tyypit ja ei-tyhjien arvojen määrät

df.info() tulostaa tiiviin yhteenvedon: indeksin tietotyypin, kunkin sarakkeen ei-tyhjien arvojen määrän, jokaisen sarakkeen tietotyypin sekä muistin kokonaiskäytön. Sarakkeissa, joissa ei-tyhjiä arvoja on vähemmän kuin rivejä yhteensä, on puuttuvia tietoja. Object-tietotyyppi tarkoittaa usein merkkijonosaraketta (tai sekatyyppistä saraketta), joka on ehkä puhdistettava ennen analyysia.

import pandas as pd
import numpy as np

df = pd.DataFrame({'name': ['A', 'B', None],
                   'score': [80.0, np.nan, 90.0],
                   'grade': ['A', 'C', 'A']})
df.info()
# Column  Non-Null Count  Dtype
# name    2 non-null      object
# score   2 non-null      float64
# grade   3 non-null      object

describe(): tilastollinen yhteenveto

df.describe() laskee kaikille numeerisille sarakkeille lukumäärän, keskiarvon, keskihajonnan, minimiarvon, 25. persentiilin, 50. persentiilin (mediaanin), 75. persentiilin ja maksimiarvon. Välittäkää include='all', jos haluatte mukaan myös object-tyyppisten (merkkijono-)sarakkeiden yhteenvedon. Välittäkää include='object', jos haluatte yhteenvedon vain kategorisista sarakkeista. Tulos on itsessään DataFrame, joten voitte tallentaa sen tai muotoilla sen raporttia varten.

import pandas as pd

df = pd.DataFrame({'age': [25, 30, 35, 40], 'score': [88, 72, 91, 65]})
print(df.describe().round(1))
#        age  score
# count  4.0    4.0
# mean  32.5   79.0
# std    6.5   12.0

shape, ndim ja size

df.shape on monikko (nrows, ncols). df.ndim palauttaa DataFrameille aina arvon 2. df.size on solujen kokonaismäärä. Käyttäkää rivien määrään len(df)-funktiota (sama kuin df.shape[0]). Nämä ovat yksinkertaisimmat järkevyystarkistukset: varmistakaa odotettu rivimäärä lataamisen jälkeen ja jokaisen suodatusvaiheen jälkeen.

import pandas as pd

df = pd.DataFrame({'x': range(100), 'y': range(100), 'z': range(100)})
print(df.shape)   # (100, 3)
print(len(df))    # 100
print(df.size)    # 300
print(df.ndim)    # 2

dtypes ja select_dtypes()

df.dtypes palauttaa Series-objektin, joka yhdistää kunkin sarakkeen nimen sen tietotyyppiin. df.select_dtypes(include='number') palauttaa uuden DataFramen, jossa on vain numeeriset sarakkeet. Tämä on hyödyllistä korrelaatioiden laskemiseen tai numeeristen muunnosten tekemiseen niin, etteivät merkkijonosarakkeet joudu vahingossa käsittelyyn. Välittäkää exclude='object', jos haluatte jättää tekstisarakkeet pois.

import pandas as pd

df = pd.DataFrame({'a': [1,2], 'b': [1.0,2.0], 'c': ['x','y']})
print(df.dtypes)
# a      int64
# b    float64
# c     object

numeric = df.select_dtypes(include='number')
print(numeric.columns.tolist())  # ['a', 'b']

isnull() ja tyhjien arvojen määrät

df.isnull().sum() antaa puuttuvien arvojen määrän sarakkeittain. Se on nopein tapa selvittää, mitkä sarakkeet tarvitsevat puhdistamista. Jakakaa tulos arvolla len(df), jos haluatte puuttuvien arvojen osuuden. Sarake, josta puuttuu yli 50 prosenttia arvoista, vaatii usein erityiskäsittelyä: se on joko poistettava tai sille on tehtävä toimialakohtainen imputointi.

import pandas as pd
import numpy as np

df = pd.DataFrame({'a': [1, np.nan, 3], 'b': [np.nan, np.nan, 6]})
print(df.isnull().sum())
# a    1
# b    2
print((df.isnull().sum() / len(df)).round(2))
# a    0.33
# b    0.67

value_counts() DataFrame-sarakkeessa

Kutsu df['col'].value_counts() luettelee sarakkeen jokaisen yksilöllisen arvon esiintymistiheyden lukumäärän mukaan järjestettynä. Lisäämällä normalize=True saatte prosenttiosuudet. Käyttäkää dropna=False, jos haluatte laskea myös NaN-arvon omaksi kategoriakseen. Tämä on nopein tapa tarkistaa kategorioiden epätasapaino tai kategorisessa sarakkeessa esiintyvät odottamattomat arvot.

import pandas as pd

df = pd.DataFrame({'status': ['active','inactive','active','active','banned']})
print(df['status'].value_counts())
# active      3
# inactive    1
# banned      1
print(df['status'].value_counts(normalize=True).round(2))

columns- ja index-ominaisuuksien tarkastelu

df.columns.tolist() antaa tavallisen Python-listan sarakkeiden nimistä. Se on hyödyllinen ohjelmalliseen käsittelyyn tai lokitukseen. df.index näyttää rivien otsakkeet ja niiden tyypin. Tarkistakaa df.index.is_unique, ettei rivien otsakkeissa ole kaksoiskappaleita, sillä tämä on monien yhdistämistoimintojen ja aikasarjalaskentojen edellytys.

import pandas as pd

df = pd.DataFrame({'a': [1,2,3]}, index=['x', 'y', 'z'])
print(df.columns.tolist())     # ['a']
print(df.index.tolist())       # ['x', 'y', 'z']
print(df.index.is_unique)      # True

sample() satunnaiseen tarkasteluun

df.sample(n) palauttaa n satunnaisesti valittua riviä ilman palautusta. df.sample(frac=0.1) palauttaa 10 prosenttia riveistä. Asettakaa random_state=, jotta tulos voidaan toistaa. Satunnaisotanta sopii paremmin kuin head() suuren aineiston keskellä olevien ongelmien löytämiseen, sillä ne eivät välttämättä näy ensimmäisillä riveillä.

import pandas as pd

df = pd.DataFrame({'x': range(1000), 'y': range(1000)})
print(df.sample(3, random_state=42))
print(df.sample(frac=0.005, random_state=0))  # 0.5% of rows

memory_usage() muistinkulutuksen arviointiin

df.memory_usage(deep=True) palauttaa kunkin sarakkeen käyttämän muistin tavuina. deep=True pakottaa object-tietotyyppisten sarakkeiden tarkan mittauksen, koska niiden merkkijonot sijaitsevat DataFramen puskurin ulkopuolella. Summaamalla arvot saatte muistin kokonaiskulutuksen. Käyttäkää tätä ennen ja jälkeen tietotyyppien pienentämisen varmistaaksenne, että muistinkulutus on pienentynyt.

import pandas as pd

df = pd.DataFrame({'a': range(10000), 'b': [str(i) for i in range(10000)]})
usage = df.memory_usage(deep=True)
print(usage)
print('Total bytes:', usage.sum())

Pikatarkistus

Testatkaa tämän oppitunnin ymmärtämistänne DataFramen perustarkastuksista.

Oppitunnin yhteenveto

Tässä oppitunnissa opitte, että head() ja tail() auttavat tarkastelemaan DataFramen alkua ja loppua visuaalisesti, info() näyttää tietotyypit ja puuttuvien arvojen määrät yhdellä kutsulla ja describe() tuottaa numeeristen sarakkeiden tilastolliset yhteenvedot. Seuraavaksi lataamme dataa yleisimmistä tiedostomuodoista – CSV-, Excel- ja JSON-tiedostoista – DataFrameihin.

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”DataFrame-olion perustarkastelu” ilmainen?

Kyllä – oppitunnin ”DataFrame-olion perustarkastelu” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Pandas & NumPy Academy-kurssin, päivitä CoddyKit PROhon. Pandas & NumPy Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”DataFrame-olion perustarkastelu”?

Käyttäkää metodeja head(), tail(), info(), describe() ja shape ymmärtääksenne nopeasti minkä tahansa DataFrame-olion sisällön ja rakenteen. Harjoittelet Pandas & NumPy Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Pandas & NumPy Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Pandas & NumPy Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”DataFrame-olion perustarkastelu”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Pandas & NumPy Academy-oppitunnilla?

Kyllä. Jokainen Pandas & NumPy Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. DataFrame-olioiden luominen
  2. Sarakkeiden ja rivien valitseminen
  3. Sarakkeiden lisääminen ja poistaminen
  4. DataFrame-olion perustarkastelu
← Takaisin: Pandas & NumPy Academy