六个令人惊叹的小众Python库

六个令人惊叹的小众Python库

在过去的五年里,我一直在广泛地使用Python。也因此,我一直在寻找一个优秀的Python库,帮助我进行数据工程和商业智能项目中的工作。

在这篇文章里,我将分享在如今的工作中,我所使用的另外六个令人惊叹的Python库。

如果你想了解更多关于Python的相关内容,可以阅读以下这些文章:
为什么在R和Python之间选择?
用Python构建Amazon产品推荐系统
七个实用的Python机器学习库
3步走方略——用Python为数据科学项目收集数据

01 Humanize

Humanize为数字、日期和时间提供简单易读的字符串格式。该库的目标是获取数据并使其更加人性化,例如,通过将秒数转换为更易读的字符串,如“2分钟前”。该库可以以各种方式格式化数据,如使用逗号格式化数字、将时间戳转换为相对时间等。

我经常在我的数据工程项目中使用integers和date&time。

安装

!pip install humanize

示例(integers)

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

输出

示例(Date&Time)

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)

输出

有关更多格式选项,请查看:

https://python-humanize.readthedocs.io/en/latest/

02 Pendulum

尽管Python中有许多库可用DateTime,但我发现Pendulum更容易在日期上进行操作。Pendulum是我日常工作中最喜欢使用的库。它扩展了内置的Python DateTime模块,添加了一个更直观的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)

输出

我需要为这个库写一个单独的博客,展示几个例子。

有关更多格式,请查看此处:

https://pendulum.eustace.io/docs/

03 FTFY

你是否遇到过数据中的外语显示不正确的情况?这就是我们所说的Mojibake。Mojibake是一个术语,用于描述由于编码或解码问题而出现的乱码或乱码文本。当以一种字符编码编写的文本使用另一种编码进行错误解码时,通常会发生这种情况。FTFY Python库将帮助你修复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还能修复错误的编码、错误的行尾和错误的引号。根据文档(https://ftfy.readthedocs.io/en/latest/explain.html),FTFY可以理解被解码为以下任何编码的文本:

  • Latin-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命令提示符)

有关更多详细信息,请查看此处的文档:

https://pypi.org/project/ftfy/

04 Sketch

Sketch是一款独特的AI代码编写助手,专为使用Python中的Pandas库的用户而设计。它利用机器学习算法来理解用户数据的背景,并提供相关的代码建议,使数据操作和分析任务更容易和高效。Sketch不需要用户在IDE中安装任何其他插件,因此可以快速轻松地开始使用。这可以大大减少与数据相关的任务所需的时间和精力,并帮助用户编写更好、更高效的代码。

安装

!pip install sketch

示例

我们需要向Pandas 数据框添加一个.sketch扩展才能使用这个库。

.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功能,它真的很有用。

有关Sketch的更多信息,请查看此Github:

https://github.com/approximatelabs/sketch

05 pGeoCode

“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")

输出

想了解更多信息,请点击这里:

https://pypi.org/project/pgeocode/

06 rembg

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是我的数据工程工作中不可或缺的,我的项目非常依赖它们。

感谢你花时间阅读本文。如果你有任何其他的想法,不要犹豫,留下你的评论——如果你有什么要补充的,请随时评论!你还可以订阅我们的YouTube频道,观看大量大数据行业相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Dhilip Subramanian
翻译作者:高佑兮
美工编辑:过儿
校对审稿:过儿
原文链接:https://pub.towardsai.net/six-amazing-python-libraries-that-im-using-now-cbcf4f4ddb79