Lär Er AI med Python · Lektion

Arbetsflöden för EDA och dataprofiler

df.info(), df.describe(), granskning av saknade värden, kontroll av datatyper och kardinalitetsanalys.

Lektion 1 av 413 steg

Arbetsflöden för EDA och dataprofiler är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.

Vad är explorativ dataanalys?

Explorativ dataanalys (EDA) är det första ni gör med varje dataset innan ni börjar modellera. Målet är att förstå strukturen, upptäcka problem och skapa en intuitiv förståelse.

En systematisk EDA-checklista för den första genomgången besvarar följande frågor: Hur stort är datamaterialet? Vilka datatyper har kolumnerna? Var finns saknade värden? Finns det dubbletter? Hur är värdena fördelade?

  • Upptäcka problem med datakvaliteten tidigt
  • Avgöra vilka features som behöver rensas
  • Formulera hypoteser att testa senare

Läsa in data

Allt börjar med att läsa in en DataFrame och göra en snabb överblick med head() och shape.

shape returnerar en tupel med (rows, columns), så att ni direkt vet vilken omfattning ni arbetar med.

import pandas as pd

df = pd.read_csv("customers.csv")
print(df.shape)        # (10000, 8)
print(df.head())       # first 5 rows

df.info() — Datatyper och antal icke-null-värden

df.info() är det mest användbara första kommandot. Det skriver ut varje kolumnnamn, dess dtype och antalet icke-null-värden.

Om en numerisk kolumn visas som object är något fel (överbliven text, kommatecken eller valutasymboler). Om antalet icke-null-värden skiljer sig mellan kolumnerna finns det saknade data.

df.info()
# <class pandas.DataFrame>
# RangeIndex: 10000 entries
# age      9800 non-null  float64
# city     10000 non-null object
# income   9500 non-null  float64

df.describe() — Numerisk sammanfattning

df.describe() ger count, mean, std, min, kvartiler (25/50/75 %) och max för varje numerisk kolumn.

Leta efter varningssignaler: ett min-värde på -1 i en ålderskolumn, ett max-värde långt över den 75:e percentilen (avvikare) eller ett medelvärde långt från medianen (skevhet).

print(df.describe())
# Use include="all" to also summarize categorical columns
print(df.describe(include="all"))

df.isnull().sum() — Räkna saknade värden

Genom att kedja isnull() med sum() räknar ni saknade värden per kolumn. Lägg till ytterligare en .sum() för totalsumman.

Omvandla till procent för att bedöma allvaret: en kolumn där 60 % av värdena saknas kan vara värd att ta bort, medan 2 % saknade värden är enkelt att imputera.

print(df.isnull().sum())

missing_pct = df.isnull().sum() / len(df) * 100
print(missing_pct.sort_values(ascending=False))

df.duplicated().sum() — Hitta dubblettrader

df.duplicated() returnerar en boolesk serie som markerar rader som är exakta kopior av en tidigare rad. Genom att summera serien räknar ni hur många dubbletter som finns.

Ni kan begränsa dubblettkontrollen till nyckelkolumner med subset – användbart när ett id ska vara unikt.

print(df.duplicated().sum())            # exact duplicate rows
print(df.duplicated(subset=["id"]).sum()) # duplicate ids

df = df.drop_duplicates()

value_counts() — Kategorifrekvenser

value_counts() räknar hur ofta varje unikt värde förekommer i en kolumn. Det är standardverktyget för att undersöka kategoriska data.

Använd normalize=True för att se andelar i stället för råa antal, och dropna=False för att ta med saknade värden i sammanräkningen.

print(df["city"].value_counts())
print(df["city"].value_counts(normalize=True))
print(df["city"].value_counts(dropna=False))

Kontrollera kardinalitet

Kardinalitet är antalet distinkta värden i en kolumn, vilket anges av nunique().

  • Låg kardinalitet (ett fåtal kategorier) → bra för one-hot-kodning.
  • Hög kardinalitet (tusentals unika strängar, t.ex. användar-ID:n) → är vanligtvis inte en användbar feature i befintligt skick.
for col in df.select_dtypes("object").columns:
    print(col, "->", df[col].nunique(), "unique")

Identifiera konstanta och ID-liknande kolumner

Två ytterligheter är värda att uppmärksamma under profileringen:

  • Konstanta kolumner (nunique() == 1) innehåller ingen information – ta bort dem.
  • ID-liknande kolumner (nunique() == len(df)) är unika för varje rad och ger de flesta modeller ingen användbar information.
n = len(df)
for col in df.columns:
    u = df[col].nunique()
    if u == 1:
        print(col, "is constant")
    elif u == n:
        print(col, "is ID-like")

dtypes och minnesanvändning

Kontrollera df.dtypes för att bekräfta att kolumnerna lagras korrekt, och df.memory_usage(deep=True) för att hitta kolumner som tar mycket minne.

Att konvertera numeriska typer till mindre typer och omvandla strängar med låg kardinalitet till category kan minska minnesanvändningen kraftigt i stora dataset.

print(df.dtypes)
print(df.memory_usage(deep=True))

df["city"] = df["city"].astype("category")

Ett återanvändbart kodexempel för profilering

Ni kan samla hela checklistan i en hjälpfunktion, så att varje nytt dataset får samma första genomgång.

Kör den direkt när ni läser in en DataFrame för att omedelbart upptäcka form, datatyper, saknade värden, dubbletter och kardinalitet.

def profile(df):
    print("Shape:", df.shape)
    print(df.info())
    print("Missing:\n", df.isnull().sum())
    print("Dupes:", df.duplicated().sum())
    for c in df.select_dtypes("object"):
        print(c, df[c].nunique(), "unique")

profile(df)

Snabbkontroll: Saknade värden

Ni vill ha procentandelen saknade värden i varje kolumn.

Sammanfattning: EDA-checklistan för den första genomgången

Nu har ni en repeterbar inledande rutin för alla dataset:

  • shape och head() för omfattning och förhandsvisning
  • info() för datatyper och antal icke-null-värden
  • describe() för numeriska sammanfattningar och indikationer på avvikare
  • isnull().sum() för saknade värden
  • duplicated().sum() för dubblettrader
  • value_counts() och nunique() för kategorifrekvenser och kardinalitet

Nästa steg är att gå igenom enskilda kolumner med univariat analys.

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
53
Lektioner
225

Vanliga frågor

Är lektionen ”Arbetsflöden för EDA och dataprofiler” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Arbetsflöden för EDA och dataprofiler”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.

Vad lär jag mig i ”Arbetsflöden för EDA och dataprofiler”?

df.info(), df.describe(), granskning av saknade värden, kontroll av datatyper och kardinalitetsanalys. Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?

Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Arbetsflöden för EDA och dataprofiler”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?

Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Arbetsflöden för EDA och dataprofiler
  2. Univariat analys
  3. Bivariat och multivariat analys
  4. Analys av featurefördelningar och målvariabler
← Tillbaka till Lär Er AI med Python