Fajne biblioteki Pythona dla inżynierii danych i NLP

Od pięciu lat intensywnie używam Pythona. W rezultacie zawsze poszukuję niesamowitych bibliotek, które mogą usprawnić moją pracę w projektach Data Engineering i Business Intelligence. W przeszłości udostępniłem dwa artykuły: „Pięć fajnych bibliotek Pythona do nauki o danych” i „Sześć fajnych bibliotek Pythona, na które ostatnio natknąłem się”.

W tym artykule udostępniam kolejnych sześć niesamowitych bibliotek Pythona, których używam obecnie w mojej pracy.

1. Humanizuj

Humanize” zapewnia proste, łatwe do odczytania formatowanie ciągów liczb, dat i godzin. Celem biblioteki jest pobieranie danych i uczynienie ich bardziej przyjaznymi dla człowieka, na przykład poprzez konwersję liczby sekund na bardziej czytelny ciąg znaków, np. „2 minuty temu”. Biblioteka może formatować dane na różne sposoby, w tym formatując liczby za pomocą przecinków, konwertując znaczniki czasu na czasy względne i nie tylko.

W moich projektach inżynierii danych często używam liczb całkowitych oraz daty i godziny.

Instalacja

!pip install humanize

Przykład (liczby całkowite)

# 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)

Wyjście

Przykład (data i godzina)

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)

Wyjście

Więcej opcji formatowania znajdziesz tutaj.

2. Wahadło

Chociaż w Pythonie dostępnych jest wiele bibliotek dla DateTime, uważam, że Pendulum jest łatwe w użyciu przy każdej operacji na datach. Wahadło to moja ulubiona biblioteka, z której korzystam na co dzień w pracy. Rozszerza wbudowany moduł datetime w Pythonie, dodając bardziej intuicyjne API do obsługi stref czasowych i wykonywania operacji na datach i godzinach, takich jak dodawanie przedziałów czasowych, odejmowanie dat i konwertowanie między strefami czasowymi. Zapewnia prosty, przyjazny dla człowieka interfejs API do formatowania dat i godzin.

Instalacja

!pip install pendulum 

Przykład

# 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)

Wyjście

Muszę napisać osobny blog dla tej biblioteki, pokazując tutaj kilka przykładów. Więcej informacji na temat formatowania można znaleźć tutaj.

3. trochę

Czy spotkałeś się z sytuacją, w której język obcy występujący w danych nie pojawia się poprawnie? Nazywa się to Mojibake. Mojibake to termin używany do opisania zniekształconego lub pomieszanego tekstu, który pojawia się w wyniku problemów z kodowaniem lub dekodowaniem. Zwykle ma to miejsce, gdy tekst zapisany w jednym kodowaniu znaków jest nieprawidłowo dekodowany przy użyciu innego kodowania. Biblioteka ftfy Pythona pomoże Ci naprawić Mojibake, co jest bardzo przydatne w przypadkach użycia NLP.

Instalacja

!pip install ftfy

Przykład

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'))

Wyjście

Oprócz Mojibake, ftfy naprawi nieprawidłowe kodowanie, nieprawidłowe zakończenia linii i nieprawidłowe cudzysłowy. Według dokumentacji ftfy rozumie tekst zdekodowany w dowolnym z następujących kodowań:

  • Łacina-1 (ISO-8859–1)
  • Windows-1252 (cp1252 — używany w produktach Microsoft)
  • Windows-1251 (cp1251 — rosyjska wersja cp1252)
  • Windows-1250 (cp1250 — wschodnioeuropejska wersja cp1252)
  • ISO-8859–2 (co nie jest tym samym, co Windows-1250)
  • MacRoman (używany w systemie Mac OS 9 i wcześniejszych wersjach)
  • cp437 (używany w systemie MS-DOS i niektórych wersjach wiersza poleceń systemu Windows)

Więcej szczegółów znajdziesz w dokumentacji tutaj.

4. Szkic

Sketch to unikalny asystent pisania kodu AI, zaprojektowany specjalnie dla użytkowników pracujących z biblioteką pand w Pythonie. Wykorzystuje algorytmy uczenia maszynowego do zrozumienia kontekstu danych użytkownika i dostarcza odpowiednie sugestie dotyczące kodu, dzięki czemu zadania manipulacji i analizy danych są łatwiejsze i wydajniejsze. Sketch nie wymaga od użytkowników instalowania żadnych dodatkowych wtyczek w swoim IDE, dzięki czemu rozpoczęcie korzystania z niego jest szybkie i łatwe. Może to znacznie skrócić czas i wysiłek wymagany do wykonywania zadań związanych z danymi oraz pomóc użytkownikom w pisaniu lepszego i wydajniejszego kodu.

Instalacja

!pip install sketch

Przykład

Aby móc korzystać z tej biblioteki, musimy dodać rozszerzenie .sketch do ramki danych Pandy.

.sketch.ask

zapytaj to funkcja programu Sketch, która umożliwia użytkownikom zadawanie pytań dotyczących ich danych w formacie języka naturalnego. Zapewnia tekstową odpowiedź na zapytanie użytkownika.

# 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?")

Wyjście

# To find the shape of the dataframe
df.sketch.ask("What is the shape of the dataframe")

.sketch.howto

howto to funkcja udostępniająca blok kodu, którego można użyć jako punktu wyjścia lub zakończenia różnych zadań związanych z danymi. Możemy poprosić o fragmenty kodu w celu normalizacji danych, utworzenia nowych funkcji, wykreślenia danych, a nawet zbudowania modeli. Zaoszczędzi to czas i łatwo skopiuje i wklei kod; nie musisz pisać kodu ręcznie od zera.

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

Wyjście

.sketch.apply

Funkcja .apply pomaga generować nowe funkcje, analizować pola i wykonywać inne operacje na danych. Aby skorzystać z tej funkcji musimy posiadać konto OpenAI i używać klucza API do wykonywania zadań. Nie próbowałem tej funkcji.

Podobało mi się korzystanie z tej biblioteki, zwłaszcza funkcji jak to, i uważam ją za przydatną.

Więcej informacji o Sketch znajdziesz na Githubie.

5. pgeokod

„pgeocode” to doskonała biblioteka, na którą niedawno natknąłem się, która okazała się niezwykle przydatna w moich projektach analizy przestrzennej. Umożliwia na przykład znalezienie odległości między dwoma kodami pocztowymi i dostarcza informacji geograficznych, pobierając jako dane wejściowe kraj i kod pocztowy.

Instalacja

!pip install pgeocode

Przykład

Uzyskiwanie geoinformacji dla określonych kodów pocztowych

# Checking for country "India"

nomi = pgeocode.Nominatim('In')

# Getting geo information by passing the postcodes

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

wyjście

„pgeocode” oblicza odległość między dwoma kodami pocztowymi, przyjmując kraj i kody pocztowe jako dane wejściowe. Wynik podawany jest w kilometrach.

# Finding a distance between two postcodes

distance = pgeocode.GeoDistance('In')

distance.query_postal_code("620018", "620012")

Wyjście

Więcej informacji znajdziesz tutaj.

6. remb

rembg to kolejna przydatna biblioteka, która z łatwością usuwa tło z obrazów.

Instalacja

!pip install rembg

Przykład

# 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)

Wyjście

Być może znasz już niektóre z tych bibliotek, ale dla mnie Sketch, Pendulum, pgeocode i ftfy są niezbędne w mojej pracy związanej z inżynierią danych. W swoich projektach bardzo na nich polegam.

Dziękuję za poświęcenie czasu na przeczytanie tego. Chętnie poznam Twoje przemyślenia i spostrzeżenia, dlatego nie wahaj się i zostaw komentarz. Jeśli masz coś do dodania, śmiało komentuj!

Połącz się ze mną na LinkedIn!

Mogą Ci się spodobać także moje poprzednie artykuły Pięć fajnych bibliotek Pythona do nauki o danych i Sześć fajnych bibliotek Pythona, na które ostatnio natknąłem się