Pandas & NumPy Academy · Lektion

Läs in och granska försäljningsdatasetet

Importera en CSV-fil med orderposter, granska dtypes och saknade värden och korrigera datumtolkning samt avvikelser med negativa kvantiteter.

Lektion 1 av 413 steg

Läs in och granska försäljningsdatasetet är en gratis lektion i Pandas & NumPy Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Pandas & NumPy Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Pandas & NumPy Academy innehåller totalt 4 lektioner.

Introduktion till försäljningsdatasetet

Ett typiskt försäljningsdataset innehåller kolumner som order_id, order_date, customer_id, product, category, quantity, unit_price och region. Innan du börjar analysera måste du läsa in filen och ta en första titt på dess struktur. Målet med detta första steg är att förstå vilka data du har innan du skriver en enda formel.

import pandas as pd

df = pd.read_csv('sales.csv')
print(df.shape)       # (rows, columns)
print(df.head())

Kontrollera form och kolumnnamn

Kontrollera omedelbart df.shape efter inläsningen för att se datasetets dimensioner och df.columns för att se alla kolumnnamn. Då bekräftar du att filen lästes in korrekt och ser om några kolumnnamn innehåller oväntade blanksteg eller versaler och gemener som behöver rensas. Ett annat antal kolumner än förväntat är en tidig varningssignal om att filen kan vara skadad.

print('Rows, Cols:', df.shape)
print('Columns:', df.columns.tolist())
print('Index:', df.index[:5].tolist())

Inspektera datatyper med dtypes

Använd df.dtypes eller df.info() för att se den infererade datatypen för varje kolumn. Vanliga problem är datumkolumner som lästs in som object (strängar) och numeriska kolumner som lästs in som object på grund av överflödiga kommatecken eller valutasymboler. Om du upptäcker problem med datatyperna tidigt förebygger du tysta fel i senare beräkningar.

print(df.dtypes)

# More detail including non-null counts
df.info()

Räkna saknade värden

Kör df.isna().sum() för att räkna antalet NaN-värden per kolumn. Konvertera resultatet till procent med df.isna().mean() * 100 för att se hur stor andel av varje kolumn som saknas. Kolumner där mer än 30–40 % saknas kräver vanligtvis ett beslut: ta bort kolumnen, imputera värden eller markera detta med en separat indikatorvariabel.

missing = df.isna().sum()
missing_pct = df.isna().mean() * 100

print(pd.DataFrame({'count': missing, 'pct': missing_pct}))

Identifiera dubblettrader

Dubbla orderposter ökar de beräknade intäkterna och förvränger all analys per kund. Använd df.duplicated().sum() för att räkna exakta dubbletter och df.duplicated(subset=['order_id']).sum() för att kontrollera upprepade order-ID:n, som bör vara unika. Om du identifierar dubbletter vid inläsningen sparar du många timmars felsökning senare.

print('Exact duplicates:', df.duplicated().sum())
print('Duplicate order_ids:', df.duplicated(subset=['order_id']).sum())

# Preview the duplicated rows
print(df[df.duplicated(subset=['order_id'], keep=False)].head())

Korrigera tolkningen av datumkolumner

En datumkolumn som lästs in som object måste konverteras med pd.to_datetime() så att du kan utföra datumaritmetik. Skicka format='%Y-%m-%d' om du känner till formatet, eller använd infer_datetime_format=True för blandade format. Efter konverteringen kan du extrahera år och månad med accessorn .dt för tidsbaserad gruppering.

df['order_date'] = pd.to_datetime(df['order_date'], format='%Y-%m-%d')

df['year'] = df['order_date'].dt.year
df['month'] = df['order_date'].dt.month

print(df[['order_date', 'year', 'month']].head())

Upptäck negativa kvantiteter

Negativa värden i quantity representerar vanligtvis returer eller inmatningsfel. Använd boolesk indexering för att hitta dem: df[df['quantity'] < 0]. Bestäm om du ska behandla dem som giltiga returer (behåll dem och lägg till en flagga) eller som fel (ta bort eller korrigera dem). Dokumentera alltid ditt beslut så att pipelinen kan återskapas.

negatives = df[df['quantity'] < 0]
print(f'Negative quantity rows: {len(negatives)}')
print(negatives.head())

# Flag returns separately
df['is_return'] = df['quantity'] < 0

Kontrollera intervall för numeriska kolumner

Använd df.describe() för att se minsta värde, största värde, medelvärde och kvartiler för alla numeriska kolumner. Ett unit_price med minsta värdet noll eller ett negativt värde är misstänkt. Ett maximalt quantity-värde som ligger långt över en rimlig orderstorlek kan vara ett inmatningsfel. En rimlighetskontroll av intervallen är ett snabbt sätt att upptäcka avvikelser.

print(df[['quantity', 'unit_price']].describe())

# Any price exactly 0?
print('Zero price rows:', (df['unit_price'] == 0).sum())

Granska kategoriska kolumner

För kolumner som region och category använder du df['region'].value_counts() för att se alla unika värden och deras frekvenser. Leta efter stavfel, inkonsekvent användning av versaler (till exempel 'north' jämfört med 'North') eller oväntade värden som tyder på problem i tidigare datasteg. Standardisera dem innan du utför någon groupby-operation.

print(df['region'].value_counts())
print(df['category'].value_counts())

# Normalise capitalisation
df['region'] = df['region'].str.strip().str.title()

Skapa en granskningssammanfattning

En strukturerad DataFrame med en granskningssammanfattning gör det lättare att kommunicera problem med datakvaliteten till intressenter. Skapa en sådan genom att samla mått som antal rader, antal kolumner, antal saknade värden och antal dubbletter i en ordlista och konvertera den till en DataFrame. Sammanfattningen blir den första delen av analysrapporten och motiverar varje rensningssteg du utför.

audit = {
    'rows': len(df),
    'columns': len(df.columns),
    'missing_cells': df.isna().sum().sum(),
    'duplicate_rows': df.duplicated().sum(),
    'date_range_start': df['order_date'].min(),
    'date_range_end': df['order_date'].max()
}

for k, v in audit.items():
    print(f'{k}: {v}')

Spara en ren ögonblicksbild

När den inledande granskningen och de grundläggande korrigeringarna är klara (korrigering av datatyper, borttagning av dubbletter och flaggkolumner) sparar du en ren ögonblicksbild, så att efterföljande steg alltid utgår från en konsekvent baslinje. Använd df.to_csv('sales_clean.csv', index=False) eller, för snabbare inläsning, df.to_parquet('sales_clean.parquet'). Parquet bevarar datatyper, inklusive datetime, vilket CSV inte gör.

# Drop exact duplicates before saving
df = df.drop_duplicates(subset=['order_id'], keep='first')

# Save clean snapshot
df.to_parquet('sales_clean.parquet', index=False)
print('Saved', len(df), 'rows to sales_clean.parquet')

Snabbkontroll

Testa dina kunskaper om Data Analysis-begrepp från den här lektionen.

Sammanfattning av lektionen

I den här lektionen har du lärt dig: läsa in en CSV-fil och kontrollera form och kolumner, granska datatyper, saknade värden, dubbletter och negativa kvantiteter samt spara en ren ögonblicksbild för efterföljande steg. Härnäst utforskar vi intäktsberäkningar och feature engineering på den rena datamängden.

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
30
Lektioner
120

Vanliga frågor

Är lektionen ”Läs in och granska försäljningsdatasetet” gratis?

Ja – hela texten till ”Läs in och granska försäljningsdatasetet” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Pandas & NumPy Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Pandas & NumPy Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Läs in och granska försäljningsdatasetet”?

Importera en CSV-fil med orderposter, granska dtypes och saknade värden och korrigera datumtolkning samt avvikelser med negativa kvantiteter. Ni övar på Pandas & NumPy Academy 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 Pandas & NumPy Academy?

Du behöver inga förkunskaper. Utbildningen i Pandas & NumPy Academy 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 ”Läs in och granska försäljningsdatasetet”?

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 Pandas & NumPy Academy-lektionen?

Ja. Varje Pandas & NumPy Academy-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. Läs in och granska försäljningsdatasetet
  2. Intäktsberäkningar och feature engineering
  3. GroupBy-analys efter region och kategori
  4. Visualisera månadstrender
← Tillbaka till Pandas & NumPy Academy