Крутые библиотеки Python для Data Engineering и NLP

Я активно использую Python в течение последних пяти лет. В результате я всегда ищу замечательные библиотеки, которые могут улучшить мою работу в проектах Data Engineering и Business Intelligence. Ранее я публиковал две статьи: Пять крутых библиотек Python для науки о данных и Шесть крутых библиотек Python, с которыми я недавно столкнулся.

В этой статье я делюсь еще шестью замечательными библиотеками Python, которые сейчас использую в своей работе.

1. Очеловечить

Humanize» обеспечивает простое, легко читаемое форматирование строк для чисел, дат и времени. Цель библиотеки — взять данные и сделать их более удобными для человека, например, путем преобразования количества секунд в более удобочитаемую строку, например «2 минуты назад». Библиотека может форматировать данные различными способами, включая форматирование чисел с запятыми, преобразование меток времени в относительное время и многое другое.

Я часто использую целые числа, дату и время в своих проектах по обработке данных.

Монтаж

!pip install humanize

Пример (целые числа)

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

Выход

Пример (дата и время)

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)

Выход

Дополнительные параметры форматирования см. здесь.

2. Маятник

Хотя в Python доступно множество библиотек для DateTime, Pendulum легко использовать для любой операции с датами. Маятник — моя любимая библиотека для ежедневного использования на работе. Он расширяет встроенный модуль даты и времени Python, добавляя более интуитивно понятный API для обработки часовых поясов и выполнения операций с датами и временем, таких как добавление временных интервалов, вычитание дат и преобразование между часовыми поясами. Он предоставляет простой и удобный API для форматирования даты и времени.

Монтаж

!pip install pendulum 

Пример

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

Выход

Мне нужно написать отдельный блог для этой библиотеки, показав здесь несколько примеров. Для большего форматирования, пожалуйста, проверьте здесь.

3. фтфы

Сталкивались ли вы с тем, что иностранный язык, присутствующий в данных, отображается неправильно? Это называется Моджибаке. Моджибаке — это термин, используемый для описания искаженного или зашифрованного текста, возникающего в результате проблем с кодированием или декодированием. Обычно это происходит, когда текст, написанный в одной кодировке символов, неправильно декодируется с использованием другой кодировки. Библиотека Python ftfy поможет вам исправить Mojibake, что очень полезно в случаях использования NLP.

Монтаж

!pip install ftfy

Пример

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

Выход

Помимо Mojibake, ftfy исправит неправильные кодировки, неправильные окончания строк и неправильные кавычки. Согласно документации, ftfy может понимать текст, декодированный в любой из следующих кодировок:

  • Латинский-1 (ISO-8859–1)
  • Windows-1252 (cp1252 — используется в продуктах Microsoft)
  • Windows-1251 (cp1251 — русская версия cp1252)
  • Windows-1250 (cp1250 — восточноевропейская версия cp1252)
  • ISO-8859-2 (что не совсем то же самое, что Windows-1250)
  • MacRoman (используется в Mac OS 9 и более ранних версиях)
  • cp437 (используется в MS-DOS и некоторых версиях командной строки Windows)

Для более подробной информации, пожалуйста, ознакомьтесь с документацией здесь.

4. Эскиз

Sketch — это уникальный помощник по написанию кода на основе ИИ, специально разработанный для пользователей, работающих с библиотекой pandas в Python. Он использует алгоритмы машинного обучения для понимания контекста пользовательских данных и предлагает соответствующие предложения кода, чтобы упростить и повысить эффективность задач обработки и анализа данных. Sketch не требует от пользователей установки каких-либо дополнительных плагинов в их IDE, что позволяет быстро и легко приступить к работе. Это может значительно сократить время и усилия, необходимые для задач, связанных с данными, и помочь пользователям писать более качественный и эффективный код.

Монтаж

!pip install sketch

Пример

Нам нужно добавить расширение .sketch к фрейму данных Pandas, чтобы использовать эту библиотеку.

.sketch.ask

ask — это функция Sketch, которая позволяет пользователям задавать вопросы о своих данных в формате естественного языка. Он предоставляет текстовый ответ на запрос пользователя.

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

Выход

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

.sketch.howto

howto – это функция, предоставляющая блок кода, который можно использовать в качестве отправной точки или заключения для различных задач, связанных с данными. Мы можем запросить фрагменты кода для нормализации их данных, создания новых функций, построения данных и даже построения моделей. Это сэкономит время и позволит легко скопировать и вставить код; вам не нужно писать код вручную с нуля.

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

Выход

.sketch.apply

Функция .apply помогает создавать новые функции, анализировать поля и выполнять другие операции с данными. Чтобы использовать эту функцию, нам нужно иметь учетную запись OpenAI и использовать ключ API для выполнения задач. Я не пробовал эту функцию.

Мне понравилось использовать эту библиотеку, особенно функцию howto, и я считаю ее полезной.

Пожалуйста, проверьте этот Github, чтобы узнать больше о Sketch.

5. геокод

«pgeocode» — отличная библиотека, с которой я недавно столкнулся, и которая оказалась невероятно полезной для моих проектов пространственного анализа. Например, он позволяет найти расстояние между двумя почтовыми индексами и предоставляет геоинформацию, взяв в качестве входных данных страну и почтовый индекс.

Монтаж

!pip install pgeocode

Пример

Получение геоинформации для определенных почтовых индексов

# Checking for country "India"

nomi = pgeocode.Nominatim('In')

# Getting geo information by passing the postcodes

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

выход

«pgeocode» вычисляет расстояние между двумя почтовыми индексами, используя страну и почтовые индексы в качестве входных данных. Результат дается в километрах.

# Finding a distance between two postcodes

distance = pgeocode.GeoDistance('In')

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

Выход

Для получения дополнительной информации, пожалуйста, проверьте здесь.

6. рембг

rembg — еще одна полезная библиотека, которая легко удаляет фон с изображений.

Монтаж

!pip install rembg

Пример

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

Выход

Возможно, вы уже знакомы с некоторыми из этих библиотек, но для меня Sketch, Pendulum, pgeocode и ftfy незаменимы в моей работе по обработке данных. Я очень полагаюсь на них в своих проектах.

Спасибо, что нашли время, чтобы прочитать это. Я хотел бы услышать ваши мысли и идеи, поэтому не стесняйтесь оставлять комментарии. Если у вас есть что добавить, пожалуйста, не стесняйтесь комментировать!

Не стесняйтесь связаться со мной в LinkedIn!

Вам также могут понравиться мои предыдущие статьи Пять крутых библиотек Python для науки о данных и Шесть крутых библиотек Python, с которыми я недавно столкнулся