0Pricing
Pandas & NumPy Academy · Lezione

Caricare e verificare il dataset delle vendite

Importi un CSV di record degli ordini, verifichi dtypes e valori mancanti e corregga l'analisi delle date e le anomalie nelle quantità negative.

Caricare e verificare il dataset delle vendite è una lezione Pandas & NumPy Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Pandas & NumPy Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Pandas & NumPy Academy include 4 lezioni in totale.

Introduzione al dataset delle vendite

Un tipico dataset delle vendite contiene colonne come order_id, order_date, customer_id, product, category, quantity, unit_price e region. Prima di qualsiasi analisi deve caricare questo file e dare una prima occhiata alla sua struttura. L'obiettivo di questo primo passaggio è capire quali dati ha a disposizione prima di scrivere una sola formula.

import pandas as pd

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

Controllare dimensioni e nomi delle colonne

Dopo il caricamento, controlli subito df.shape per conoscere le dimensioni del dataset e df.columns per visualizzare tutti i nomi delle colonne. In questo modo verifica che il file sia stato caricato correttamente e individua eventuali spazi imprevisti o differenze tra maiuscole e minuscole nei nomi delle colonne che devono essere corretti. Una differenza nel numero di colonne previsto è un primo segnale di possibile danneggiamento del file.

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

Esaminare i tipi di dati con dtypes

Utilizzi df.dtypes o df.info() per visualizzare il tipo di dati inferito per ogni colonna. Tra i problemi comuni vi sono le colonne di date caricate come object (stringhe) e le colonne numeriche caricate come object a causa di virgole o simboli di valuta estranei. Individuare tempestivamente i problemi dei dtype previene errori non evidenti nei calcoli successivi.

print(df.dtypes)

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

Contare i valori mancanti

Esegua df.isna().sum() per contare i valori NaN in ogni colonna. Li converta in percentuale con df.isna().mean() * 100 per vedere quale frazione di ogni colonna è mancante. Le colonne con oltre il 30–40% di valori mancanti richiedono generalmente una decisione: eliminare la colonna, imputare i valori o contrassegnarla con una variabile indicatrice separata.

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

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

Rilevare le righe duplicate

I record d'ordine duplicati gonfiano i totali dei ricavi e falsano qualsiasi analisi per cliente. Utilizzi df.duplicated().sum() per contare i duplicati esatti e df.duplicated(subset=['order_id']).sum() per verificare la presenza di ID ordine ripetuti, che dovrebbero essere univoci. Individuare i duplicati al momento del caricamento consente di risparmiare ore di debug in seguito.

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())

Correggere l'analisi della colonna delle date

Una colonna di date caricata come object deve essere convertita con pd.to_datetime() per poter eseguire operazioni aritmetiche sulle date. Passi format='%Y-%m-%d' se conosce il formato, oppure utilizzi infer_datetime_format=True per formati misti. Dopo la conversione, estragga anno e mese con l'accessor .dt per raggruppare i dati nel tempo.

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())

Individuare le quantità negative

I valori negativi di quantity rappresentano in genere resi o errori di inserimento dei dati. Utilizzi l'indicizzazione booleana per individuarli: df[df['quantity'] < 0]. Decida se considerarli resi legittimi (conservandoli e aggiungendo un indicatore) o errori (eliminandoli o correggendoli). Documenti sempre la decisione, in modo che la pipeline sia riproducibile.

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

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

Controllare gli intervalli delle colonne numeriche

Utilizzi df.describe() per visualizzare il minimo, il massimo, la media e i quartili di ogni colonna numerica. Un unit_price con valore minimo pari a zero o negativo è sospetto. Un valore massimo di quantity molto superiore a qualsiasi dimensione ragionevole di un ordine potrebbe indicare un errore di inserimento. Controllare la plausibilità degli intervalli è un modo rapido per individuare le anomalie.

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

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

Verificare le colonne categoriali

Per colonne come region e category, usi df['region'].value_counts() per visualizzare tutti i valori univoci e le relative frequenze. Cerchi refusi, maiuscole incoerenti (ad esempio 'north' e 'North') o valori imprevisti che indicano problemi nei dati di origine. Li standardizzi prima di qualsiasi operazione di groupby.

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

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

Creazione di un riepilogo dell’audit

Un DataFrame strutturato di riepilogo dell’audit aiuta a comunicare i problemi di qualità dei dati agli stakeholder. Lo costruisca raccogliendo in un dizionario metriche come il numero di righe, il numero di colonne, il conteggio dei valori mancanti e quello dei duplicati, quindi convertendo il dizionario in un DataFrame. Questo riepilogo diventa la prima sezione del report di analisi e giustifica ogni operazione di pulizia eseguita.

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}')

Salvataggio di uno snapshot pulito

Dopo l’audit iniziale e le correzioni di base (correzione dei dtype, rimozione dei duplicati e colonne di flag), salvi uno snapshot pulito, così i passaggi successivi partono sempre da una base coerente. Usi df.to_csv('sales_clean.csv', index=False) oppure, per ricaricare i dati più velocemente, df.to_parquet('sales_clean.parquet'). Parquet preserva i dtype, incluso datetime, cosa che CSV non fa.

# 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')

Verifica rapida

Verifichi la Sua comprensione dei concetti di analisi dei dati trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha imparato a: caricare un CSV e controllare forma e colonne, verificare dtype, valori mancanti, duplicati e quantità negative e salvare uno snapshot pulito per i passaggi successivi. Ora esploreremo i calcoli dei ricavi e la creazione di feature sul dataset pulito.

Domande Frequenti

La lezione «Caricare e verificare il dataset delle vendite» è gratuita?

Sì — il testo completo di «Caricare e verificare il dataset delle vendite» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Pandas & NumPy Academy, passa a CoddyKit PRO. Il corso Pandas & NumPy Academy include 4 lezioni in totale.

Cosa imparerò in «Caricare e verificare il dataset delle vendite»?

Importi un CSV di record degli ordini, verifichi dtypes e valori mancanti e corregga l'analisi delle date e le anomalie nelle quantità negative. Eserciti Pandas & NumPy Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Pandas & NumPy Academy?

Non è richiesta alcuna esperienza precedente. Pandas & NumPy Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Caricare e verificare il dataset delle vendite»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Pandas & NumPy Academy?

Sì. Ogni lezione Pandas & NumPy Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Caricare e verificare il dataset delle vendite
  2. Calcolo dei ricavi e feature engineering
  3. Analisi GroupBy per area e categoria
  4. Visualizzare l'andamento mensile
← Torna a Pandas & NumPy Academy