Vai al contenuto principale

Tutorial: selezionare colonne in Python

Usa Python Pandas e seleziona colonne dai DataFrame. Segui il nostro tutorial con esempi di codice e scopri diversi modi per selezionare i tuoi dati oggi stesso!
Aggiornato 29 set 2026  · 7 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Per eseguire facilmente da solo tutto il codice di esempio in questo tutorial, puoi creare un quaderno DataLabgratuito con Python preinstallato e che contiene tutti gli esempi di codice.

Se hai un DataFrame e vuoi accedere o selezionare alcune righe/colonne specifiche da quel DataFrame, puoi usare le parentesi quadre o altri metodi avanzati come loc e iloc.

Selezionare colonne usando le parentesi quadre

Supponiamo ora che tu voglia selezionare la colonna country dal DataFrame brics. Per farlo, digiterai brics e poi l'etichetta della colonna tra parentesi quadre.

Selezionare una colonna

          country     capital        area    population
BR         Brazil    Brasilia       8.516        200.40
RU         Russia      Moscow      17.100        143.50
IN         India    New Dehli       3.286       1252.00
CH         China      Beijing       9.597       1357.00
SA  South Africa     Pretoria       1.221         52.98
brics["country"]
BR         Brazil
RU         Russia
IN         India
CH         China
SA  South Africa
Name: country, dtype: object

Verificare il tipo dell'oggetto

Controlliamo il tipo dell'oggetto restituito con la funzione type().

type(brics["country"])
pandas.core.series.Series

Come si vede dall'output sopra, qui stiamo lavorando con una serie pandas! Le Series possono essere considerate come array monodimensionali che possono essere etichettati proprio come un DataFrame.

Se vuoi selezionare i dati e mantenerli in un DataFrame, dovrai usare doppie parentesi quadre:

brics[["country"]]
BR         Brazil
RU         Russia
IN         India
CH         China
SA  South Africa

Se controlliamo il tipo di questo output, è un DataFrame! Anche se con una sola colonna.

type(brics[["country"]])
pandas.core.frame.DataFrame

Capire l'attributo .shape

Ora diamo un'occhiata all'attributo .shape. L'attributo .shape in pandas offre un modo rapido per vedere la struttura di un DataFrame o di una Series. Restituisce una tupla che indica il numero di righe e colonne nel DataFrame o solo il numero di righe in una Series.

Esempio: usare .shape con un DataFrame

Guardiamo di nuovo il nostro DataFrame chiamato brics:

import pandas as pd

# Sample DataFrame
data = {
    "country": ["Brazil", "Russia", "India", "China", "South Africa"],
    "capital": ["Brasilia", "Moscow", "New Delhi", "Beijing", "Pretoria"],
    "area": [8.516, 17.1, 3.286, 9.597, 1.221],
    "population": [200.4, 143.5, 1252, 1357, 52.98],
}
brics = pd.DataFrame(data, index=["BR", "RU", "IN", "CH", "SA"])

# Check the shape
print(brics.shape)

Output:

(5, 4)

Questo ci dice che il DataFrame brics ha 5 righe e 4 colonne.

Esempio: usare .shape con una Series

Quando si seleziona una singola colonna dal DataFrame, come la colonna country, il risultato è una Series. Ecco come si comporta .shape in questo caso:

country_series = brics["country"]
print(country_series.shape)

Output:

(5,)

Qui la Series ha 5 righe e nessuna colonna, dato che una Series è monodimensionale.

Ricapitolando: per un DataFrame, .shape restituisce una tupla con il numero di righe e colonne. Per una Series, restituisce il numero di righe. Usa .shape per controllare rapidamente la dimensione del tuo dataset o verificare i risultati di filtri e selezioni. Ricorda anche che .shape è un attributo, quindi non servono le parentesi per accedervi. 

Selezionare più colonne

Puoi estendere questa chiamata per selezionare due colonne. Proviamo a selezionare country e capital.

brics[["country", "capital"]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing
SA  South Africa     Pretoria

Se guardi bene, in realtà stai inserendo una lista con le etichette di colonna dentro un altro paio di parentesi quadre e ottieni un sotto-DataFrame che contiene solo le colonne country e capital.

Selezionare righe usando le parentesi quadre

Le parentesi quadre possono fare più che selezionare colonne. Puoi usarle anche per ottenere righe, o osservazioni, da un DataFrame.

Esempio

Puoi selezionare righe con le parentesi quadre solo se specifichi uno slice, come 0:4. Inoltre, qui stai usando gli indici interi delle righe, non le etichette delle righe!

Per ottenere la seconda, terza e quarta riga del DataFrame brics, usiamo lo slice da 1 a 4. Ricorda che la fine dello slice è esclusiva e l'indice parte da zero.

brics[1:4]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Delhi    3.286       1252.00
CH         China      Beijing    9.597       1357.00

Queste parentesi quadre funzionano, ma offrono funzionalità limitate. Idealmente, vorremmo qualcosa di simile agli array 2D di Numpy, dove usi comunque le parentesi quadre. L'indice, o lo slice, prima della virgola si riferisce alle righe, e lo slice dopo la virgola si riferisce alle colonne.

Esempio di array 2D Numpy:

my_array[rows, columns]

Se vuoi fare qualcosa di simile con pandas, devi considerare l'uso delle funzioni loc e iloc.

  • loc: basato su etichette

  • iloc: basato sulla posizione intera

Funzione loc

loc è una tecnica per selezionare parti dei tuoi dati in base alle etichette. Diamo un'occhiata al DataFrame brics e prendiamo le righe per la Russia.

Per farlo, inserirai l'etichetta di interesse tra parentesi quadre dopo loc.

Selezionare righe

brics.loc["RU"]
country     Russia
capital     Moscow
area          17.1
population   143.5
Name: RU, dtype: object

Otteniamo una serie pandas contenente tutte le informazioni della riga; scomodo, però, perché è mostrata su linee diverse. Per ottenere un DataFrame, dobbiamo mettere la stringa RU in un altro paio di parentesi. Possiamo anche selezionare più righe contemporaneamente. Supponiamo di voler includere anche India e Cina. Basta aggiungere quelle etichette di riga alla lista.

brics.loc[["RU", "IN", "CH"]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Delhi    3.286       1252.00
CH         China      Beijing    9.597       1357.00

La differenza tra usare loc e le semplici parentesi quadre è che puoi estendere la selezione con una virgola e una specifica delle colonne di interesse.

Selezionare righe e colonne

Estendiamo la chiamata precedente per includere solo le colonne country e capital. Aggiungiamo una virgola e l'elenco delle etichette di colonna che vogliamo mantenere. Viene restituita l'intersezione.

brics.loc[["RU", "IN", "CH"], ["country", "capital"]]
          country     capital
RU         Russia      Moscow
IN         India    New Delhi
CH         China      Beijing

Puoi anche usare loc per selezionare tutte le righe ma solo un numero specifico di colonne. Sostituisci semplicemente la prima lista che specifica le etichette di riga con i due punti. Uno slice che va dall'inizio alla fine. Questa volta otteniamo indietro tutte le righe ma solo due colonne.

Selezionare tutte le righe e colonne specifiche

brics.loc[:, ["country", "capital"]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Delhi
CH         China      Beijing
SA  South Africa     Pretoria

Funzione iloc

La funzione iloc ti permette di estrarre sottoinsiemi dai DataFrame pandas in base alla loro posizione o indice.

Selezionare righe

Usiamo gli stessi dati ed esempi simili a quelli visti per loc. Iniziamo ottenendo la riga per la Russia.

brics.iloc[[1]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50

Per ottenere le righe per Russia, India e Cina, puoi ora usare una lista di indici 1, 2, 3.

brics.iloc[[1, 2, 3]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Delhi    3.286       1252.00
CH         China      Beijing    9.597       1357.00

Selezionare righe e colonne

Come con loc, possiamo selezionare sia righe che colonne usando iloc. Qui selezioneremo le righe per Russia, India e Cina e le colonne country e capital.

brics.iloc[[1, 2, 3], [0, 1]]
          country     capital
RU         Russia      Moscow
IN         India    New Delhi
CH         China      Beijing

Selezionare tutte le righe e colonne specifiche

Infine, se volessi selezionare tutte le righe ma tenere solo le colonne country e capital, puoi:

brics.loc[:, [0, 1]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Delhi
CH         China      Beijing
SA  South Africa     Pretoria

Le funzioni loc e iloc sono piuttosto simili. L'unica differenza è come fai riferimento a colonne e righe.

Esempio interattivo sulla selezione di un sottoinsieme di dati

Nel seguente esempio, i dati delle auto vengono importati da un file CSV come DataFrame Pandas. Per selezionare solo la cars_per_cap column da cars, puoi usare:

cars['cars_per_cap']
cars[['cars_per_cap']]

La versione con una parentesi quadra restituisce una Series Pandas; quella con doppie parentesi quadre restituisce un DataFrame Pandas.

  • Userai una singola parentesi quadra per stampare la colonna country di cars come Series Pandas.
  • Poi usa le doppie parentesi quadre per stampare la colonna country di cars come DataFrame Pandas.
  • Infine, usa le doppie parentesi quadre per stampare un DataFrame con entrambe le colonne country e drives_right di cars, in quest'ordine.
# Import cars data
import pandas as pd
cars = pd.read_csv('cars.csv', index_col = 0)

# Print out country column as Pandas Series
print(cars['country'])

# Print out country column as Pandas DataFrame
print(cars[['country']])

# Print out DataFrame with country and drives_right columns
print(cars[['country', 'drives_right']])

Quando eseguiamo il codice sopra, produce il seguente risultato:

US     United States
AUS        Australia
JPN            Japan
IN             India
RU            Russia
MOR          Morocco
EG             Egypt
Name: country, dtype: object
           country
US   United States
AUS      Australia
JPN          Japan
IN           India
RU          Russia
MOR        Morocco
EG           Egypt
           country  drives_right
US   United States          True
AUS      Australia         False
JPN          Japan         False
IN           India         False
RU          Russia          True
MOR        Morocco          True
EG           Egypt          True

Provalo tu stesso.

Per saperne di più su pandas, guarda questo video dal nostro corso Intermediate Python.

Questo contenuto è tratto dal corso Intermediate Python di DataCamp, a cura di Hugo Bowne-Anderson.

Argomenti
Python
Analisi dei dati
Data Literacy

Corsi di Python

{count, plural, one {Corso} other {Corsi}}

Python - Livello Intermedio

{hours} ore
1.4M
Migliora le tue competenze nella scienza dei dati creando visualizzazioni con Matplotlib e manipolando DataFrames con pandas.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

{count, plural, one {blog} other {blogs}}

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

{count, plural, one {blog} other {blogs}}

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

{count, plural, one {blog} other {blogs}}

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro