六个令人惊叹的小众Python库
今日份知识你摄入了么?
在过去的五年里,我一直在广泛地使用Python。也因此,我一直在寻找一个优秀的Python库,帮助我进行数据工程和商业智能项目中的工作。
图片来自Unsplash,作者Jamie Fenn
在这篇文章里,我将分享在如今的工作中,我所使用的另外六个令人惊叹的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是我的数据工程工作中不可或缺的,我的项目非常依赖它们。
感谢你花时间阅读本文。如果你有任何其他的想法,不要犹豫,留下你的评论——如果你有什么要补充的,请随时评论!
原文作者:Dhilip Subramanian
翻译作者:高佑兮
美工编辑:过儿
校对审稿:过儿
原文链接:https://pub.towardsai.net/six-amazing-python-libraries-that-im-using-now-cbcf4f4ddb79
本周公开课预告
往期精彩回顾
ChatGPT会替代我们的工作吗——最有可能被人工智能取代的十种工作
Microsoft使用AI的7种方式,带你真正了解Bing
新兴报表工具FineReport——商业分析师需要知道的三种报表
点击“阅读原文”查看数据应用学院核心课程