EDA con Polars Guida passo-passo alle funzioni di aggregazione e analitiche (Parte 2)
EDA con Polars Guida alle funzioni di aggregazione e analitiche (Parte 2)
Aggregazioni avanzate e medie mobili a velocità fulminea con Polars
Introduzione
Nella prima parte di questa serie abbiamo affrontato le basi di Polars e confrontato le sue funzionalità e sintassi con Pandas. In questa parte porteremo la complessità delle nostre query ad un livello superiore, vedremo quindi come eseguire aggregazioni piuttosto complesse, statistiche mobili e altro ancora. Se non conosci Polars o hai bisogno di un ripasso, assicurati di dare un’occhiata alla parte precedente. Altrimenti, continuiamo ad esplorare Polars!
Configurazione
Come nella parte precedente, assicurati di clonare/scaricare questa repo GitHub poiché contiene tutto il codice necessario per questo post. In particolare, utilizzeremo questo notebook, quindi assicurati di averlo se vuoi seguirmi.
I dati utilizzati in questo progetto possono essere scaricati da Kaggle (CC0: Public Domain). Suppongo che tu abbia già installato Polars, quindi assicurati solo di aggiornarlo all’ultima versione usando pip install -U polars
.
Elaborazione dei dati
Lettura dei dati
Come nel post precedente, leggiamo il dataset delle tendenze nel Regno Unito e le associazioni per le colonne category_id
.
- Affrontare il bias nei sistemi di riconoscimento facciale Un approccio innovativo
- Ecco gli strumenti di intelligenza artificiale che uso insieme alle mie competenze per guadagnare $10.000 al mese – senza cazzate
- L’interprete di codice ChatGPT è ora disponibile per tutti gli utenti Plus
csv_path = './youtube/GBvideos.csv'json_path = './youtube/US_category_id.json'df = pl.read_csv(csv_path)with open(json_path, 'r') as f: categories = json.load(f) id_to_category = {}for c in categories['items']: id_to_category[int(c['id'])] = c['snippet']['title']
Pulizia dei dati
Successivamente, analizziamo le date e associamo gli ID delle categorie ai nomi delle categorie. Per renderlo più pronto per la produzione, metterò il codice di analisi delle date in una funzione generalizzabile.
def parse_dates(df: pl.DataFrame, date_cols: Dict[str, str]) -> pl.DataFrame: expressions = [] for date_col, format in date_cols.items(): expressions.append(pl.col(date_col).str.to_date(format=format)) df = df.with_columns(expressions) return df# Nome della colonna con il formato di data attesodate_column_format = { "trending_date": '%y.%d.%m', "publish_time"…