查看原文
其他

六个令人惊叹的小众Python库

数据应用学院 大数据应用 2023-08-17

今日份知识你摄入了么?

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

图片来自Unsplash,作者Jamie Fenn


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


01

Humanize


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


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


安装

!pip install humanize


示例(integers)

# Importing library
import humanizeimport datetime as dt
# Formatting  numbers with commaa =  humanize.intcomma(951009)
# converting numbers into wordsb = humanize.intword(10046328394)
#printing
print(a)print(b)


输出

示例(Date&Time)

import humanizeimport 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 libraryimport 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 timeutc = 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 sketchimport 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 typedf.sketch.ask("Which columns are category type?")


输出


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


howto是一项提供代码块的功能,提供的代码块可用作各种数据相关任务的起点或结论。我们可以要求代码片段来规范化他们的数据,创建新的功能,绘制数据,甚至建立模型。代码很容易复制和粘贴,能帮助我们减少工作时间——你不需要从头开始手动编写代码。


# Asking to provide code snipped for visualising the emotionsdf.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 removeimport cv2 # path of input image (my file: image.jpeg)input_path = 'image.jpeg'# path for saving output image and saving as a output.jpegoutput_path = 'output.jpeg'# Reading the input imageinput = cv2.imread(input_path)# Removing backgroundoutput = remove(input)# Saving filecv2.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

谷歌发布了巴德A.I,以应对ChatGPT

轻视ChatGPT市场浪潮,Chegg股价受到冲击

新兴报表工具FineReport——商业分析师需要知道的三种报表





点「在看」的人都变好看了哦

点击“阅读原文”查看数据应用学院核心课程

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存