Articoli

Librerie Python incredibili, ma poco conosciute

Il programmatore Python è sempre alla ricerca di nuove librerie, che possano migliorare il lavoro nei progetti di ingegneria dei dati e business intelligence.

In questo articolo vediamo alcune librerie python poco conosciute, ma molto utili:

1. Pendulum

Sebbene molte librerie siano disponibili in Python per DateTime, trovo Pendulum facile da usare su qualsiasi operazione sulle date. Un pendolo è la mia libreria preferita per il mio uso quotidiano al lavoro. Estende il modulo datetime di Python integrato, aggiungendo un’API più intuitiva per la gestione dei fusi orari e l’esecuzione di operazioni su date e orari come l’aggiunta di intervalli di tempo, la sottrazione di date e la conversione tra fusi orari. Fornisce un’API semplice e intuitiva per la formattazione di date e orari.

Installazione
!pip install pendulum
Esempio
# import library

import pendulum
dt = pendulum.datetime(2023, 1, 31)
print(dt)
 
#local() creates datetime instance with local timezone

local = pendulum.local(2023, 1, 31)
print("Local Time:", local)
print("Local Time Zone:", local.timezone.name)

# Printing UTC time

utc = pendulum.now('UTC')
print("Current UTC time:", utc)
 
# Converting UTC timezone into Europe/Paris time

europe = utc.in_timezone('Europe/Paris')
print("Current time in Paris:", europe)
Output

2. ftfy

Hai riscontrato quando la lingua straniera presente nei dati non compare correttamente? Questo si chiama Mojibake. Mojibake è un termine usato per descrivere testo confuso o criptato che si verifica a seguito di problemi di codifica o decodifica. In genere si verifica quando il testo scritto con una codifica di caratteri viene decodificato in modo errato utilizzando una codifica diversa. La libreria ftfy python ti aiuterà a correggere Mojibake, che è molto utile nei casi d’uso della PNL.

Installazione
!pip install ftfy
Esempio
print(ftfy.fix_text('Correct the sentence using “ftfyâ€\x9d.'))
print(ftfy.fix_text('✔ No problems with text'))
print(ftfy.fix_text('à perturber la réflexion'))
Output

Oltre a Mojibake, ftfy correggerà codifiche errate, terminazioni di riga errate e virgolette errate. può comprendere il testo che è stato decodificato come una delle seguenti codifiche:

  • Latino-1 (ISO-8859–1)
  • Windows-1252 (cp1252 — utilizzato nei prodotti Microsoft)
  • Windows-1251 (cp1251 — la versione russa di cp1252)
  • Windows-1250 (cp1250 — la versione dell’Europa orientale di cp1252)
  • ISO-8859–2 (che non è esattamente uguale a Windows-1250)
  • MacRoman (utilizzato su Mac OS 9 e versioni precedenti)
  • cp437 (utilizzato in MS-DOS e alcune versioni del prompt dei comandi di Windows)

3. Sketch

Lo sketch è un esclusivo assistente per la scrittura di codice AI progettato specificamente per gli utenti che lavorano con la libreria panda in Python. Utilizza algoritmi di apprendimento automatico per comprendere il contesto dei dati dell’utente e fornisce suggerimenti di codice pertinenti per rendere le attività di manipolazione e analisi dei dati più semplici ed efficienti. Sketch non richiede agli utenti di installare plug-in aggiuntivi nel proprio IDE, rendendo l’utilizzo facile e veloce. Ciò può ridurre notevolmente il tempo e lo sforzo necessari per le attività relative ai dati e aiutare gli utenti a scrivere codice migliore e più efficiente.

Installazione
!pip install sketch
Esempio

Dobbiamo aggiungere un’estensione .sketch al frame di dati Pandas per utilizzare questa libreria.

.sketch.ask

ask è una funzionalità di Sketch che consente agli utenti di porre domande sui propri dati in un formato di linguaggio naturale. Fornisce una risposta basata su testo alla query dell’utente.

# Importing libraries
import sketch
import pandas as pd
# Reading the data (using twitter data as an example)
df = pd.read_csv("tweets.csv")
print(df)
# Asking which columns are category type
df.sketch.ask("Which columns are category type?")
Output
# To find the shape of the dataframe
df.sketch.ask("What is the shape of the dataframe")

.sketch.howto

howto è una funzionalità che fornisce un blocco di codice che può essere utilizzato come punto di partenza o conclusione per varie attività relative ai dati. Possiamo chiedere frammenti di codice per normalizzare i loro dati, creare nuove funzionalità, tracciare dati e persino costruire modelli. Ciò consentirà di risparmiare tempo e di copiare e incollare facilmente il codice; non è necessario scrivere il codice manualmente da zero.

# Asking to provide code snipped for visualising the emotions
df.sketch.howto("Visualize the emotions")
Output

.sketch.apply

La funzione .apply aiuta a generare nuove funzionalità, analizzare i campi ed eseguire altre manipolazioni dei dati. Per utilizzare questa funzione, dobbiamo disporre di un account OpenAI e utilizzare la chiave API per eseguire le attività. Non ho provato questa funzione.

Mi è piaciuto usare questa libreria, in particolare come funziona, e la trovo utile.

4. pgeocode

“pgeocode” è un’eccellente libreria in cui mi sono imbattuto di recente, che è stata incredibilmente utile per i miei progetti di analisi spaziale. Ad esempio, consente di trovare la distanza tra due codici postali e fornisce informazioni geografiche prendendo come input un paese e un codice postale.

Installazione
!pip install pgeocode
Esempio

Ottenere informazioni geografiche per codici postali specifici

# Checking for country "India"

nomi = pgeocode.Nominatim('In')

# Getting geo information by passing the postcodes

nomi.query_postal_code(["620018", "620017", "620012"])
Output

“pgeocode” calcola la distanza tra due codici postali prendendo come input il paese e i codici postali. Il risultato è espresso in chilometri.

# Finding a distance between two postcodes
distance = pgeocode.GeoDistance('In')
distance.query_postal_code("620018", "620012")
Output

5. rembg

rembg è un’altra utile libreria che rimuove facilmente lo sfondo dalle immagini.

Installazione
!pip install rembg
Esempio
# Importing libraries
from rembg import remove
import cv2 
# path of input image (my file: image.jpeg)
input_path = 'image.jpeg'
# path for saving output image and saving as a output.jpeg
output_path = 'output.jpeg'
# Reading the input image
input = cv2.imread(input_path)
# Removing background
output = remove(input)
# Saving file 
cv2.imwrite(output_path, output)
Output

Potresti già avere familiarità con alcune di queste librerie, ma per me Sketch, Pendulum, pgeocode e ftfy sono indispensabili per il mio lavoro di ingegneria dei dati. Mi affido molto a loro per i miei progetti.

6. Humanize

Humanize” fornisce una formattazione delle stringhe semplice e di facile lettura per numeri, date e orari. L’obiettivo della biblioteca è prendere i dati e renderli più user-friendly, ad esempio convertendo un numero di secondi in una stringa più leggibile come “2 minuti fa”. La libreria può formattare i dati in vari modi, inclusa la formattazione di numeri con virgole, la conversione di timestamp in tempi relativi e altro ancora.

Uso spesso numeri interi e data e ora per i miei progetti di ingegneria dei dati.

Installazione
!pip install humanize
Esempio (Numeri interi)
# Importing library
import humanize
import datetime as dt

# Formatting  numbers with comma
a =  humanize.intcomma(951009)

# converting numbers into words
b = humanize.intword(10046328394)

#printing
print(a)
print(b)
Output
Esempio (data e ora)
import humanize
import datetime as dt
    
a = humanize.naturaldate(dt.date(2012, 6, 5))
b = humanize.naturalday(dt.date(2012, 6, 5))

print(a)
print(b)

Ercole Palmeri

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.
Tags: python