Vai al contenuto principale

Introduzione a Polars: lo strumento Python per l'analisi dei dati su larga scala

Esplora Polars, una solida libreria Python per la manipolazione e l'analisi dei dati ad alte prestazioni. Scopri le sue caratteristiche, i vantaggi rispetto a pandas e come può rivoluzionare i tuoi processi di analisi dei dati.
Aggiornato 29 set 2026  · 9 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Nel mondo dell'analisi dei dati, Python è un linguaggio molto popolare grazie alla sua versatilità e all'ampio ecosistema di librerie. La manipolazione e l'analisi dei dati svolgono un ruolo cruciale nell'estrarre insight e prendere decisioni informate. Tuttavia, man mano che i dataset crescono in dimensioni e complessità, la necessità di soluzioni ad alte prestazioni diventa fondamentale.

Gestire grandi dataset in modo efficiente richiede strumenti in grado di offrire calcoli rapidi e operazioni ottimizzate. È qui che entra in gioco Polars. Polars è una potente libreria open source progettata specificamente per la manipolazione e l'analisi dei dati ad alte prestazioni in Python.

Funzionalità di Polars

Polars è una libreria DataFrame scritta interamente in Rust, pensata per offrire agli sviluppatori Python un framework scalabile ed efficiente per la gestione dei dati, ed è considerata un'alternativa alla popolarissima libreria pandas. Fornisce un'ampia gamma di funzionalità che facilitano diverse attività di manipolazione e analisi dei dati. Alcune delle caratteristiche e dei vantaggi principali dell'uso di Polars includono:

1. Velocità e prestazioni

Polars è progettata con un'attenzione particolare alle prestazioni. Sfrutta l'elaborazione parallela e tecniche di ottimizzazione della memoria, consentendole di elaborare grandi dataset significativamente più velocemente rispetto ai metodi tradizionali.

2. Capacità di manipolazione dei dati

Polars offre un set completo di strumenti per la manipolazione dei dati, che include operazioni essenziali come filtraggio, ordinamento, raggruppamento, join e aggregazione. Pur non avendo ancora la stessa vastità di funzionalità di pandas a causa della sua relativa novità, copre circa l'80% delle operazioni comuni presenti in Pandas.

3. Sintassi espressiva

Polars adotta una sintassi concisa e intuitiva, facile da imparare e utilizzare. La sua sintassi ricorda quella di popolari librerie Python come pandas, permettendo agli utenti di adattarsi rapidamente a Polars e sfruttare le conoscenze già acquisite.

4. Strutture DataFrame e Series

Al cuore di Polars ci sono le strutture DataFrame e Series, che offrono un'astrazione familiare e potente per lavorare con dati tabellari. Le operazioni sui DataFrame in Polars possono essere concatenate, abilitando trasformazioni dei dati efficienti e concise.

5. Polars supporta la valutazione lazy

Polars incorpora la valutazione lazy, che prevede l'esame e l'ottimizzazione delle query per migliorarne le prestazioni e ridurre il consumo di memoria. Quando lavori con Polars, la libreria analizza le tue query e cerca opportunità per accelerarne l'esecuzione o ridurre l'uso di memoria. Al contrario, Pandas supporta esclusivamente la valutazione eager, per cui le espressioni vengono valutate immediatamente non appena incontrate.

Perché scegliere Polars quando abbiamo pandas?

pandas, una libreria ampiamente adottata, è nota per la sua flessibilità e facilità d'uso. Tuttavia, quando si lavora con grandi dataset, Pandas può soffrire di colli di bottiglia prestazionali a causa dell'esecuzione single-thread. All'aumentare delle dimensioni del dataset, i tempi di elaborazione possono diventare proibitivi, limitando la produttività.

Polars è stata progettata specificamente per gestire grandi dataset in modo efficiente. Con la sua strategia di valutazione lazy e le capacità di esecuzione parallela, Polars eccelle nell'elaborare rapidamente quantità consistenti di dati. Distribuendo i calcoli su più core CPU, Polars sfrutta il parallelismo per offrire notevoli guadagni prestazionali. Vedi il test di confronto sulla velocità tra Pandas e Polars di Yuki.

image4.png

Fonte immagine

Per un confronto completo tra Polars e pandas, dai un'occhiata al nostro articolo dedicato.

Installare Polars

Polars può essere installata tramite pip, il gestore dei pacchetti di Python. Apri l'interfaccia a riga di comando ed esegui il seguente comando:

install polars

Caricare un dataset in Polars

Polars fornisce metodi pratici per caricare dati da varie fonti, inclusi file CSV, file Parquet e DataFrame di Pandas. I metodi per leggere file CSV o Parquet sono gli stessi della libreria pandas.

# read csv file
import polars as pl
data = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')


# check the head
data.head()

Output:

image2.png

Il tipo di data è polars.DataFrame.

type(data)
>>> polars.dataframe.frame.DataFrame

Output:

image7.png

Funzioni comuni di manipolazione dei dati con Polars

Polars offre un set completo di funzionalità per la manipolazione dei dati, permettendoti di selezionare, filtrare, ordinare, trasformare e ripulire i tuoi dati con facilità. Esploriamo alcune attività comuni di manipolazione dei dati e come realizzarle con Polars:

1. Selezionare e filtrare i dati

Per selezionare colonne specifiche da un DataFrame, puoi usare il metodo select(). Ecco un esempio:

import polars as pl


# Load diamond data from a CSV file
df = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')


# Select specific columns: carat, cut, and price
selected_df = df.select(['Carat Weight', 'Cut', 'Price'])


# show selected_df head
selected_df.head()

Output:

image1.png

Il filtraggio delle righe in base a determinate condizioni può essere effettuato usando il metodo filter(). Ad esempio, per filtrare le righe in cui i carati sono maggiori di 1,0, puoi fare così:

import polars as pl


# Load diamond data from a CSV file
df = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')


# filter the df with condition
filtered_df = df.filter(pl.col('Carat Weight') > 2.0)


# show filtered_df head
filtered_df.head()

Output:

image9.png

2. Ordinare e disporre i dati

Polars fornisce il metodo sort() per ordinare un DataFrame in base a una o più colonne. Ecco un esempio:

import polars as pl


# Load diamond data from a CSV file
df = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')


# sort the df by price
sorted_df = df.sort(by='Price')


# show sorted_df head
sorted_df.head()

Output:

image12.png

3. Gestire i valori mancanti

Polars mette a disposizione metodi pratici per gestire i valori mancanti. Il metodo drop_nulls() consente di eliminare le righe che contengono qualsiasi valore mancante:

import polars as pl


# Load diamond data from a CSV file
df = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')


# drop missing values
cleaned_df = df.drop_nulls()


# show cleaned_df head
cleaned_df.head()

Output:

image5.png

In alternativa, puoi usare il metodo fill_nulls() per sostituire i valori mancanti con un valore predefinito specificato o con un metodo di riempimento.

4. Raggruppare i dati in base a colonne specifiche

Per raggruppare i dati in base a colonne specifiche, puoi usare il metodo groupby(). Ecco un esempio che raggruppa i dati per la colonna Cut e calcola il Price medio per ciascun gruppo:

import polars as pl


# Load diamond data from a CSV file
df = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')


# group by cut and calc mean of price
grouped_df = df.groupby(by='Cut').agg(pl.col('Price').mean())


# show grouped_df head
grouped_df.head()

Output:

image8.png

Nell'output sopra puoi vedere il prezzo medio dei diamanti per dimensione Cut.

5. Effettuare join e combinare DataFrame

Polars offre opzioni flessibili per effettuare join e combinare DataFrame, permettendoti di unire e concatenare dati da diverse fonti. Per eseguire un'operazione di join, puoi usare il metodo join(). Ecco un esempio che mostra un inner join tra due DataFrame basato su una colonna chiave comune:

import polars as pl


# Create the first DataFrame
df1 = pl.DataFrame({
    'id': [1, 2, 3, 4],
    'name': ['Alice', 'Bob', 'Charlie', 'David']
})


# Create the second DataFrame
df2 = pl.DataFrame({
    'id': [2, 3, 5],
    'age': [25, 30, 35]
})


# Perform an inner join on the 'id' column
joined_df = df1.join(df2, on='id')


# Display the joined DataFrame
joined_df

Output:

image6.png

In questo esempio, creiamo due DataFrame (df1 e df2) utilizzando il costruttore pl.DataFrame. Il primo DataFrame df1 contiene le colonne id e name, mentre il secondo DataFrame df2 contiene le colonne id e age. Eseguiamo quindi un inner join sulla colonna id usando il metodo join(), specificando la colonna id come chiave di join.

Integrazione e interoperabilità

Polars offre un'integrazione fluida con altre popolari librerie Python, consentendo agli analisti di dati di sfruttare un'ampia gamma di strumenti e funzionalità. Esploriamo due aspetti chiave dell'integrazione: lavorare con altre librerie e l'interoperabilità con Pandas.

Integrare Polars con altre librerie Python

Polars si integra facilmente con librerie come NumPy e PyArrow, permettendo agli utenti di combinare i punti di forza di più strumenti nei propri flussi di lavoro di analisi dei dati. Con l'integrazione di NumPy, Polars converte senza sforzo tra DataFrame Polars e array NumPy, sfruttando le potenti capacità di calcolo scientifico di NumPy. Questa integrazione garantisce transizioni di dati fluide e consente agli analisti di applicare direttamente funzioni NumPy ai dati in Polars.

Allo stesso modo, sfruttando PyArrow, Polars ottimizza il trasferimento dei dati tra Polars e sistemi basati su Arrow. Questa integrazione consente di lavorare senza soluzione di continuità con dati archiviati in formato Arrow e di sfruttare le capacità di manipolazione dei dati ad alte prestazioni di Polars.

Convertire DataFrame Polars in DataFrame pandas

Polars offre una conversione senza intoppi dei DataFrame Polars in DataFrame Pandas. Ecco un esempio che illustra la conversione da Polars a pandas.

import polars as pl
import pandas as pd


# Create a Polars DataFrame
df_polars = pl.DataFrame({
    'column_A': [1, 2, 3],
    'column_B': ['apple', 'banana', 'orange']
})


# Convert Polars DataFrame to Pandas DataFrame
df_pandas = df_polars.to_pandas()


# Display the Pandas DataFrame
df_pandas

Output:

image3.png

Conclusione

Polars è una libreria potente per la manipolazione e l'analisi dei dati ad alte prestazioni in Python. Le sue ottimizzazioni in termini di velocità e prestazioni la rendono una scelta ideale per gestire grandi dataset in modo efficiente.

Con la sua sintassi espressiva e le strutture DataFrame, Polars offre un'interfaccia familiare e intuitiva per i compiti di manipolazione dei dati. Inoltre, Polars si integra perfettamente con altre librerie Python come NumPy e PyArrow, ampliandone le capacità e permettendo agli utenti di sfruttare un ecosistema diversificato di strumenti.

La possibilità di convertire i DataFrame Polars in DataFrame pandas garantisce interoperabilità e facilita l'integrazione di Polars nei flussi di lavoro esistenti. Che tu stia lavorando con tipi di dati complessi, gestendo grandi dataset o cercando miglioramenti prestazionali, Polars offre un set di strumenti completo per sprigionare tutto il potenziale delle tue attività di analisi dei dati.


Moez Ali's photo
Author
Moez Ali
LinkedIn
Twitter

Data Scientist, fondatore e creatore di PyCaret

Argomenti
Python

I migliori corsi di manipolazione dei dati in Python

Corso

Manipolazione dei dati con pandas

4 ore
566.8K
Impara a importare e pulire dati, calcolare statistiche e creare visualizzazioni con pandas.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

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

blog

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

blog

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