Grunnleggende inspeksjon av DataFrames
Bruk head(), tail(), info(), describe() og shape til raskt å forstå innholdet og strukturen i en hvilken som helst DataFrame.
Grunnleggende inspeksjon av DataFrames er en gratis leksjon i Pandas & NumPy Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Pandas & NumPy Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Pandas & NumPy Academy inneholder totalt 4 leksjoner.
De fem første trinnene med enhver DataFrame
Hver gang De laster inn et nytt datasett, kan en systematisk inspeksjonssekvens spare Dem for timevis med feilsøking. Pandas-verktøyene for dette omfatter: head() for å se de første radene, tail() for de siste radene, info() for kolonnetyper og nullverdier, describe() for statistikk og shape for dimensjoner. Det tar mindre enn ett minutt å kjøre disse fem kontrollene, og de avdekker de fleste datakvalitetsproblemer umiddelbart.
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() # statisticshead() og tail()
df.head(n) returnerer de første n radene (standardverdien er 5) som en DataFrame. df.tail(n) returnerer de siste n radene. Sammen hjelper de Dem med å kontrollere at dataene ble tolket riktig — for eksempel at kolonnenavnene står i header-raden, at numeriske kolonner inneholder tall, og at datostrenger ikke ble feiltolket. De endrer ikke dataene og returnerer nye DataFrames.
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 39info(): Typer og antall ikke-null-verdier
df.info() skriver ut en kort oppsummering: indeksens dtype, antallet ikke-null-verdier per kolonne, hver kolonnes dtype og det totale minneforbruket. Kolonner med færre ikke-null-verdier enn det totale antallet rader, inneholder manglende data. Object-dtype betyr ofte at kolonnen inneholder strenger (eller verdier av blandede typer) og kan trenge rensing før analysen.
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 objectdescribe(): Statistisk oppsummering
df.describe() beregner antall, gjennomsnitt, standardavvik, minimum, 25.-, 50.- (medianen) og 75.-persentil samt maksimum for alle numeriske kolonner. Oppgi include='all' for også å oppsummere object-kolonner (strenger). Oppgi include='object' for bare å oppsummere kategoriske kolonner. Resultatet er selv en DataFrame, så De kan lagre det eller formatere det for en rapport.
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.0shape, ndim og size
df.shape er en tuppel på formen (nrows, ncols). df.ndim returnerer alltid 2 for DataFrames. df.size er det totale antallet celler. Bruk len(df) for antallet rader (samme som df.shape[0]). Dette er de enkleste rimelighetskontrollene — bekreft forventet antall rader etter innlasting og etter hvert filtreringstrinn.
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) # 2dtypes og select_dtypes()
df.dtypes returnerer en Series som knytter hvert kolonnenavn til kolonnens dtype. df.select_dtypes(include='number') returnerer en ny DataFrame med bare numeriske kolonner — nyttig for å beregne korrelasjoner eller bruke numeriske transformasjoner uten å risikere å operere på strengkolonner. Oppgi exclude='object' for å utelate tekstkolonner.
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() og antall nullverdier
df.isnull().sum() gir antallet manglende verdier per kolonne — den raskeste måten å finne ut hvilke kolonner som trenger rensing på. Del på len(df) for å få andelen manglende verdier. En kolonne med mer enn 50 % manglende verdier trenger ofte særskilt behandling: enten ved at den fjernes, eller ved at De bruker imputering tilpasset domenet.
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.67value_counts() på en DataFrame-kolonne
Et kall til df['col'].value_counts() viser hvor ofte hver unike verdi forekommer i kolonnen, sortert etter antall. Legg til normalize=True for å få prosentandeler. Bruk dropna=False for også å telle NaN som en kategori. Dette er den raskeste måten å kontrollere skjev fordeling mellom kategorier eller uventede verdier i en kategorisk kolonne.
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))Inspeksjon av columns og index
df.columns.tolist() gir en vanlig Python-liste med kolonnenavn — nyttig for programmatisk manipulering eller logging. df.index viser radetikettene og typen deres. Kontroller df.index.is_unique for å bekrefte at ingen dupliserte radetiketter finnes, noe som er en forutsetning for mange fletteoperasjoner og tidsserie-beregninger.
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) # Truesample() for tilfeldig inspeksjon
df.sample(n) returnerer n tilfeldig valgte rader uten tilbakelegging. df.sample(frac=0.1) returnerer 10 % av radene. Angi random_state= for å kunne gjenskape resultatet. Tilfeldig utvalg er bedre enn head() for å oppdage problemer midt i et stort datasett som kanskje ikke forekommer i de første radene.
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 rowsmemory_usage() for minnebudsjettering
df.memory_usage(deep=True) returnerer minnet som hver kolonne bruker, målt i byte. deep=True tvinger frem en nøyaktig måling av kolonner med object-dtype, der strengene ligger utenfor DataFrame-bufferen. Summer verdiene for å få det totale minneforbruket. Bruk dette før og etter nedskalering av dtype for å bekrefte at De har redusert minnebruken.
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())Kort kontroll
Test forståelsen Deres av grunnleggende DataFrame-inspeksjon fra denne leksjonen.
Oppsummering av leksjonen
I denne leksjonen lærte De at head() og tail() lar Dem inspisere starten og slutten av en DataFrame visuelt, at info() viser dtype-er og antall manglende verdier i ett enkelt kall, og at describe() gir statistiske oppsummeringer for numeriske kolonner. Neste gang laster vi inn data fra de vanligste filformatene — CSV, Excel og JSON — til DataFrames.
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Grunnleggende inspeksjon av DataFrames» gratis?
Ja – hele teksten i «Grunnleggende inspeksjon av DataFrames» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Pandas & NumPy Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Pandas & NumPy Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Grunnleggende inspeksjon av DataFrames»?
Bruk head(), tail(), info(), describe() og shape til raskt å forstå innholdet og strukturen i en hvilken som helst DataFrame. Du øver på Pandas & NumPy Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Pandas & NumPy Academy?
Ingen tidligere erfaring er nødvendig. Pandas & NumPy Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Grunnleggende inspeksjon av DataFrames»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Pandas & NumPy Academy-leksjonen?
Ja. Alle Pandas & NumPy Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Opprette DataFrames
- Velge kolonner og rader
- Legge til og fjerne kolonner
- Grunnleggende inspeksjon av DataFrames