Installare pandas e la tua prima tabella
Pandas non è incluso in Python. Creare un ambiente virtuale, installare con pip, verificare l'installazione e costruire il tuo primo DataFrame a mano.
Come vuoi imparare?
Il problema che stiamo risolvendo
Gli incassi trimestrali di un negozio si trovano in un file CSV — dodicimila righe. La domanda è semplice: quale prodotto ha venduto di più?
Potresti farlo con il Python che già conosci. Apri il file, leggi ogni riga, dividi sulle virgole, converti in numeri, sommali uno alla volta. Quaranta righe di codice, con la possibilità di sbagliare a ogni passaggio.
In pandas sono due righe. Perché pandas dà a Python una cosa che prima non aveva: una tabella. Un'intera griglia di righe e colonne viene gestita come un unico valore, e sommare, filtrare e ordinare sono ciascuna una singola operazione.
Prima, però, vale la pena chiarire una cosa. print, len e input arrivano insieme a Python. Pandas no. Deve essere installato separatamente, e non capire esattamente dove viene installato è ciò che blocca le persone al primo giorno con un errore di cui è difficile individuare la causa.
Alla fine di questo capitolo sarai in grado di
- Spiegare cosa distingue la libreria di Python da un pacchetto esterno
- Creare e attivare un ambiente virtuale per un progetto
- Installare pandas con
pipe verificare la versione - Costruire e stampare il tuo primo
DataFramea mano - Leggere un
ModuleNotFoundErrore capire esattamente cosa è andato storto
Prerequisiti: dal corso di Python, il terminale, le cartelle e il tuo primo progetto e variabili e tipi.
Pandas non fa parte di Python
Ciò che viene fornito con Python si chiama libreria standard — print, len, math, random si trovano tutti lì. Pandas no. È un pacchetto esterno, scritto da altre persone e pubblicato su un repository chiamato PyPI.
Lo strumento che lo scarica è pip, che invece è incluso in Python.
E questo solleva la prima domanda, quella che causa problemi più avanti se viene ignorata: installato dove?
Perché un ambiente virtuale
Scrivi pip install pandas e pandas finirà nel Python dell'intera macchina. Per un solo progetto può andare bene. Ma tra sei mesi, quando un secondo progetto avrà bisogno di una versione diversa di pandas, i due entreranno in competizione per lo stesso spazio — e sistemarne uno romperà l'altro.
La risposta è una stanza separata per ogni progetto: un ambiente virtuale. In realtà non è altro che una normale cartella all'interno del progetto che contiene i pacchetti di quel progetto. Elimina il progetto e i pacchetti spariranno con esso, mentre il Python principale della macchina rimarrà pulito.
Nel terminale, posizionandoti nella cartella dei tuoi progetti:
cd D:\python-lab
mkdir pandas-lab
cd pandas-lab
python -m venv .venvOra attivalo:
.venv\Scripts\activateUna volta attivo, il nome della stanza compare all'inizio del prompt:
(.venv) PS D:\python-lab\pandas-lab>Quel(.venv)è il punto fondamentale. Se non lo vedi sei fuori dall'ambiente, epip installmetterà il pacchetto da qualche altra parte. Ogni nuovo terminale richiede di nuovoactivate— non è qualcosa che imposti una volta e dimentichi.
Se PowerShell segnala che l'esecuzione di script è disabilitata, esegui questo comando una volta:
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedPer uscire, digita deactivate.
Installa, poi verifica
pip install pandasPochi secondi dopo termina con Successfully installed .... Nota che insieme a pandas è stato scaricato anche NumPy — pandas usa NumPy sotto il cofano, e pip risolve queste dipendenze al posto tuo.
Ora verifica. Crea un file chiamato check.py:
import pandas as pd
print(pd.__version__)2.2.3Il tuo numero potrebbe essere diverso, e va bene così. Ciò che conta è che sia stato stampato un numero di versione — significa che Python ha trovato pandas.
Due note su quella riga import pandas as pd. import pandas importa pandas; as pd gli assegna un nome breve. Il nome pd non è obbligatorio, ma praticamente tutto il codice pandas nel mondo lo usa — quindi scrivere qualsiasi altra cosa rende il tuo codice più difficile da leggere per gli altri. Adotta la convenzione.
Un esempio completo
first_frame.py:
import pandas as pd
# A DataFrame from a dictionary: each key is a column name,
# each list is that column's values, top to bottom.
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales)product quantity price
0 pen 12 15.0
1 notebook 5 60.0
2 bag 2 850.0Osserva attentamente ciò che è stato stampato, perché ogni sua parte conterà nei capitoli seguenti.
In alto ci sono i nomi delle colonne — product, quantity, price. Lungo il lato sinistro ci sono 0, 1, 2. Non sono una colonna: sono l'indice, i nomi delle righe. Non li hai scritti nel dizionario; li ha forniti pandas, contando a partire da zero.
E nota il 15.0 nella colonna price. Hai scritto 15.0, quindi l'intera colonna viene stampata con decimali, anche se 850.0 avrebbe potuto essere un numero intero. Ogni valore in una colonna condivide un unico tipo — una regola fondamentale in pandas, nonché l'argomento principale del prossimo capitolo.
Con la tabella a disposizione, interrogarla è semplice:
import pandas as pd
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales.shape)
print(sales["quantity"].sum())(3, 3)
19shape indica quanto è grande la tabella — tre righe, tre colonne, in quest'ordine. E sales["quantity"].sum() somma ogni valore di una colonna. Con dodicimila righe la riga di codice sarebbe esattamente la stessa, ed è proprio questo il motivo per imparare pandas.
Quando qualcosa va storto
ModuleNotFoundError: No module named 'pandas' Python non è riuscito a trovare pandas. Quasi sempre questo significa che il punto in cui è stato installato e il punto da cui viene eseguito il programma non coincidono. Controlla il prompt per verificare la presenza di (.venv); se manca, esegui activate ed esegui di nuovo il codice. Con l'ambiente attivo, pip list mostrerà se pandas è davvero presente.
'pip' is not recognized as an internal or external command pip non si trova nel PATH. Scrivi invece python -m pip install pandas — questo comando chiama pip tramite il Python attualmente in esecuzione, quindi funziona senza PATH e non lascia dubbi su quale Python riceverà l'installazione.
.venv\Scripts\activate : File cannot be loaded because running scripts is disabled È un criterio di sicurezza di PowerShell. Esegui Set-ExecutionPolicy -Scope CurrentUser RemoteSigned una volta, poi riprova in un nuovo terminale.
Funziona tutto, ma l'editor mostra sottolineature rosse L'editor sta probabilmente guardando un Python diverso. In VS Code, Ctrl + Shift + P → Python: Select Interpreter → scegli quello nel .venv del progetto. Se il programma viene eseguito nel terminale, il codice va bene — la sottolineatura rossa è solo una supposizione errata dell'editor.
NameError quando scrivi DataFrame Deve essere pd.DataFrame, non DataFrame da solo. import pandas as pd importa l'intera libreria sotto il nome pd, quindi qualsiasi cosa al suo interno si raggiunge tramite pd..
Passo 4 di 6 — Prevedi
Verifica cosa hai capito
Cosa stampa shape, e in quale ordine si trovano i due numeri?
import pandas as pd
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales.shape)- A(3, 4)
- B(3, 3)
- C3 rows, 3 columns
- D(3,)
Cosa significa vedere (.venv) all'inizio del prompt?
- APython è in esecuzione in una modalità protetta speciale
- BTi trovi all'interno della cartella chiamata `.venv`
- CL'ambiente virtuale è attivo in questo terminale — ora `pip install` installerà nella stanza di questo progetto
- DL'installazione di pandas è terminata
pip install pandas è andato a buon fine, ma il giorno successivo un nuovo terminale che esegue lo stesso file segnala ModuleNotFoundError: No module named 'pandas'. Qual è la causa più probabile?
- AIn realtà l'installazione non è riuscita
- BI pacchetti installati vengono cancellati quando la macchina viene spenta
- CIl file contiene `import pandas` invece di `import pandas as pd`
- DIl nuovo terminale non ha mai attivato l'ambiente, quindi è in esecuzione un Python diverso — uno privo di pandas
Per rispondere serve un account
Accedi per verificare le tue risposte
Le domande sono qui sopra, e ragionarci a mente è la parte che conta. Accedi per vedere le risposte, le spiegazioni e i suggerimenti a tre livelli.
Tocca a te
Crea una nuova cartella, crea al suo interno il tuo ambiente virtuale e installa pandas, poi scrivi un file chiamato stock.py che contenga:
- Un
DataFramedi almeno quattro prodotti con tre colonne — una testuale, una con numeri interi, una con decimali - L'intera tabella stampata
shapestampato, che mostri il numero di righe e colonne- La somma di entrambe le colonne numeriche stampata
Poi rompilo di proposito: digita deactivate nel terminale per uscire dall'ambiente ed esegui di nuovo il file. Quale errore compare, e cosa ti sta dicendo esattamente?
Non saltare quest'ultimo passaggio. Incontrerai ModuleNotFoundError molte volte, e provocarlo deliberatamente oggi significa riconoscerne la causa in un secondo la prossima volta.
Passo 6 di 6
Sfida — il quiz del capitolo
Dieci domande dalla più facile alla più difficile. Le ultime sono difficili di proposito.
Accedi per fare il quiz