目录
1、Knockknock
2、tqdm
3、Pandas-log
4、Emoji
5、TheFuzz
6、Numerizer
7、PyAutoGUI
8、Weightedcalcs
9、scikit-posthocs
10、Cerberus
11、ppscore
12、Maya
13、Pendulum
14、category_encoders
15、scikit-multilearn
16、Multiset
17、Jazzit
18、handcalcs
19、NeatText
20、Combo
21、PyAztro
22、Faker
23、Fairlearn
24、tiobeindexpy
25、pytrends
26、visions
27、Schedule
28、autocorrect
29、funcy
30、IceCream
总结
首页 后端开发 Python教程 30 个数据工程必备的Python 包

30 个数据工程必备的Python 包

Apr 12, 2023 pm 04:58 PM
python 编程语言 数据

Python 可以说是最容易入门的编程语言,在numpy,scipy等基础包的帮助下,对于数据的处理和机器学习来说Python可以说是目前最好的语言,在各位大佬和热心贡献者的帮助下Python拥有一个庞大的社区支持技术发展,开发两个各种 Python 包来帮助数据人员的工作。

30 个数据工程必备的Python 包

在本文中,将介绍一些非常独特的并且好用的 Python 包,它们可以在许多方面帮助你构建数据的工作流。

1、Knockknock

Knockknock是一个简单的Python包,它会在机器学习模型训练结束或崩溃时通知您。我们可以通过多种渠道获得通知,如电子邮件、Slack、Microsoft Teams等。

为了安装该包,我们使用以下代码。

pip install knockknock
登录后复制

例如,我们可以使用以下代码将机器学习建模训练状态通知到指定的电子邮件地址。

from knockknock import email_senderfrom sklearn.linear_model import LinearRegressionimport numpy as np@email_sender(recipient_emails=["<your_email@address.com>", "<your_second_email@address.com>"], sender_email="<sender_email@gmail.com>")def train_linear_model(your_nicest_parameters):x = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])y = np.dot(x, np.array([1, 2])) + 3 regression = LinearRegression().fit(x, y)return regression.score(x, y)
登录后复制

这样就可以在该函数出现问题或者完成时获得通知。

2、tqdm

当需要进行迭代或循环时,如果你需要显示进度条?那么tqdm就是你需要的。这个包将在你的笔记本或命令提示符中提供一个简单的进度计。

让我们从安装包开始。

pip install tqdm
登录后复制

然后可以使用以下代码来显示循环过程中的进度条。

from tqdm import tqdmq = 0for i in tqdm(range(10000000)):q = i +1
登录后复制

30 个数据工程必备的Python 包

就像上面的gifg,它可以在notebook上显示一个很好的进度条。当有一个复杂的迭代并且想要跟踪进度时,它会非常有用。

3、Pandas-log

Panda -log可以对Panda的基本操作提供反馈,如.query、.drop、.merge等。它基于R的Tidyverse,可以使用它了解所有数据分析步骤。

安装包

pip install pandas-log
登录后复制

安装包之后,看看下面的示例。

import pandas as pdimport numpy as npimport pandas_logdf = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],"toy": [np.nan, 'Batmobile', 'Bullwhip'],"born": [pd.NaT, pd.Timestamp("1940-04-25"), pd.NaT]})
登录后复制

然后让我们尝试用下面的代码做一个简单的 pandas 操作记录。

with pandas_log.enable():res = (df.drop("born", axis = 1).groupby('name'))
登录后复制

30 个数据工程必备的Python 包

通过 pandas-log,我们可以获取所有的执行信息。

4、Emoji

顾名思义,Emoji 是一个支持 emoji 文本解析的 Python 包。 通常,我们很难用 Python 处理表情符号,但 Emoji 包可以帮助我们进行转换。

使用以下代码安装 Emoji 包。

pip install emoji
登录后复制

看看下面代码:

import emojiprint(emoji.emojize('Python is :thumbs_up:'))
登录后复制

30 个数据工程必备的Python 包

有了这个包,可以轻易的输出表情符号。

5、TheFuzz

TheFuzz 使用 Levenshtein 距离来匹配文本以计算相似度。

pip install thefuzz
登录后复制

下面代码介绍如何使用 TheFuzz 进行相似性文本匹配。

from thefuzz import fuzz, process#Testing the score between two sentencesfuzz.ratio("Test the word", "test the Word!")
登录后复制

30 个数据工程必备的Python 包

TheFuzz 还可以同时从多个单词中提取相似度分数。

choices = ["Atlanta Falcons", "New York Jets", "New York Giants", "Dallas Cowboys"]process.extract("new york jets", choices, limit=2)
登录后复制

30 个数据工程必备的Python 包

TheFuzz 适用于任何文本数据相似性检测,这个工作在nlp中非常重要。

6、Numerizer

Numerizer 可将写入的数字文本转换为对应的整数或浮点数。

pip install numerizer
登录后复制

然后 让我们尝试几个输入来进行转换。

from numerizer import numerizenumerize('forty two')
登录后复制

30 个数据工程必备的Python 包

如果使用另一种书写风格,它也可以工作的。

numerize('forty-two')
登录后复制

30 个数据工程必备的Python 包

numerize('nine and three quarters')
登录后复制

30 个数据工程必备的Python 包

如果输入不是数字的表达式,那么将会保留:

numerize('maybe around nine and three quarters')
登录后复制

30 个数据工程必备的Python 包

7、PyAutoGUI

PyAutoGUI 可以自动控制鼠标和键盘。

pip install pyautogui
登录后复制

然后我们可以使用以下代码测试。

import pyautoguipyautogui.moveTo(10, 15)pyautogui.click()pyautogui.doubleClick()pyautogui.press('enter')
登录后复制

上面的代码会将鼠标移动到某个位置并单击鼠标。 当需要重复操作(例如下载文件或收集数据)时,非常有用。

8、Weightedcalcs

Weightedcalcs 用于统计计算。 用法从简单的统计数据(例如加权平均值、中位数和标准变化)到加权计数和分布等。

pip install weightedcalcs
登录后复制

使用可用数据计算加权分布。

import seaborn as snsdf = sns.load_dataset('mpg')import weightedcalcs as wccalc = wc.Calculator("mpg")
登录后复制

然后我们通过传递数据集并计算预期变量来进行加权计算。

calc.distribution(df, "origin")
登录后复制

30 个数据工程必备的Python 包

9、scikit-posthocs

scikit-posthocs 是一个用于“事后”测试分析的 python 包,通常用于统计分析中的成对比较。 该软件包提供了简单的类似 scikit-learn API 来进行分析。

pip install scikit-posthocs
登录后复制

然后让我们从简单的数据集开始,进行 ANOVA 测试。

import statsmodels.api as saimport statsmodels.formula.api as sfaimport scikit_posthocs as spdf = sa.datasets.get_rdataset('iris').datadf.columns = df.columns.str.replace('.', '')lm = sfa.ols('SepalWidth ~ C(Species)', data=df).fit()anova = sa.stats.anova_lm(lm)print(anova)
登录后复制

30 个数据工程必备的Python 包

获得了 ANOVA 测试结果,但不确定哪个变量类对结果的影响最大,可以使用以下代码进行原因的查看。

sp.posthoc_ttest(df, val_col='SepalWidth', group_col='Species', p_adjust='holm')
登录后复制

30 个数据工程必备的Python 包

使用 scikit-posthoc,我们简化了事后测试的成对分析过程并获得了 P 值

10、Cerberus

Cerberus 是一个用于数据验证的轻量级 python 包。

pip install cerberus
登录后复制

Cerberus 的基本用法是验证类的结构。

from cerberus import Validatorschema = {'name': {'type': 'string'}, 'gender':{'type': 'string'}, 'age':{'type':'integer'}}v = Validator(schema)
登录后复制

定义好需要验证的结构后,可以对实例进行验证。

document = {'name': 'john doe', 'gender':'male', 'age': 15}v.validate(document)
登录后复制

30 个数据工程必备的Python 包

如果匹配,则 Validator 类将输出True 。 这样我们可以确保数据结构是正确的。

11、ppscore

ppscore 用于计算与目标变量相关的变量的预测能力。 该包计算可以检测两个变量之间的线性或非线性关系的分数。 分数范围从 0(无预测能力)到 1(完美预测能力)。

pip install ppscore
登录后复制

使用 ppscore 包根据目标计算分数。

import seaborn as snsimport ppscore as ppsdf = sns.load_dataset('mpg')pps.predictors(df, 'mpg')
登录后复制

30 个数据工程必备的Python 包

结果进行了排序。 排名越低变量对目标的预测能力越低。

12、Maya

Maya 用于尽可能轻松地解析 DateTime 数据。

pip install maya
登录后复制

然后我们可以使用以下代码轻松获得当前日期。

import mayanow = maya.now()print(now)
登录后复制

还可以为明天日期。

tomorrow = maya.when('tomorrow')tomorrow.datetime()
登录后复制

30 个数据工程必备的Python 包

13、Pendulum

Pendulum 是另一个涉及 DateTime 数据的 python 包。 它用于简化任何 DateTime 分析过程。

pip install pendulum
登录后复制

我们可以对实践进行任何的操作。

import pendulumnow = pendulum.now("Europe/Berlin")now.in_timezone("Asia/Tokyo")now.to_iso8601_string()now.add(days=2)
登录后复制

30 个数据工程必备的Python 包

14、category_encoders

category_encoders 是一个用于类别数据编码(转换为数值数据)的python包。 该包是各种编码方法的集合,我们可以根据需要将其应用于各种分类数据。

pip install category_encoders
登录后复制

可以使用以下示例应用转换。

from category_encoders import BinaryEncoderimport pandas as pdenc = BinaryEncoder(cols=['origin']).fit(df)numeric_dataset = enc.transform(df)numeric_dataset.head()
登录后复制

30 个数据工程必备的Python 包

15、scikit-multilearn

scikit-multilearn 可以用于特定于多类分类模型的机器学习模型。 该软件包提供 API 用于训练机器学习模型以预测具有两个以上类别目标的数据集。

pip install scikit-multilearn
登录后复制

利用样本数据集进行多标签KNN来训练分类器并度量性能指标。

from skmultilearn.dataset import load_datasetfrom skmultilearn.adapt import MLkNNimport sklearn.metrics as metricsX_train, y_train, feature_names, label_names = load_dataset('emotions', 'train')X_test, y_test, _, _ = load_dataset('emotions', 'test')classifier = MLkNN(k=3)prediction = classifier.fit(X_train, y_train).predict(X_test)metrics.hamming_loss(y_test, prediction)
登录后复制

30 个数据工程必备的Python 包

16、Multiset

Multiset类似于内置的set函数,但该包允许相同的字符多次出现。

pip install multiset
登录后复制

可以使用下面的代码来使用 Multiset 函数。

from multiset import Multisetset1 = Multiset('aab')set1
登录后复制

30 个数据工程必备的Python 包

17、Jazzit

Jazzit 可以在我们的代码出错或等待代码运行时播放音乐。

pip install jazzit
登录后复制

使用以下代码在错误情况下尝试示例音乐。

from jazzit import error_track@error_track("curb_your_enthusiasm.mp3", wait=5)def run():for num in reversed(range(10)):print(10/num)
登录后复制

这个包虽然没什么用,但是它的功能是不是很有趣,哈

18、handcalcs

handcalcs 用于简化notebook中的数学公式过程。 它将任何数学函数转换为其方程形式。

pip install handcalcs
登录后复制

使用以下代码来测试 handcalcs 包。 使用 %%render 魔术命令来渲染 Latex 。

import handcalcs.renderfrom math import sqrt
登录后复制
%%rendera = 4b = 6c = sqrt(3*a + b/7)
登录后复制

30 个数据工程必备的Python 包

19、NeatText

NeatText 可简化文本清理和预处理过程。 它对任何 NLP 项目和文本机器学习项目数据都很有用。

pip install neattext
登录后复制

使用下面的代码,生成测试数据

import neattext as nt mytext = "This is the word sample but ,our WEBSITE is https://exaempleeele.com ✨."docx = nt.TextFrame(text=mytext)
登录后复制

TextFrame 用于启动 NeatText 类然后可以使用各种函数来查看和清理数据。

docx.describe()
登录后复制

30 个数据工程必备的Python 包

使用 describe 函数,可以显示每个文本统计信息。进一步清理数据,可以使用以下代码。

docx.normalize()
登录后复制

30 个数据工程必备的Python 包

20、Combo

Combo 是一个用于机器学习模型和分数组合的 python 包。 该软件包提供了一个工具箱,允许将各种机器学习模型训练成一个模型。 也就是可以对模型进行整合。

pip install combo
登录后复制

使用来自 scikit-learn 的乳腺癌数据集和来自 scikit-learn 的各种分类模型来创建机器学习组合。

from sklearn.tree import DecisionTreeClassifierfrom sklearn.linear_model import LogisticRegressionfrom sklearn.ensemble import GradientBoostingClassifierfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.datasets import load_breast_cancerfrom combo.models.classifier_stacking import Stackingfrom combo.utils.data import evaluate_print
登录后复制

接下来,看一下用于预测目标的单个分类器。

# Define data file and read X and yrandom_state = 42X, y = load_breast_cancer(return_X_y=True)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4,random_state=random_state)# initialize a group of clfsclassifiers = [DecisionTreeClassifier(random_state=random_state),LogisticRegression(random_state=random_state),KNeighborsClassifier(),RandomForestClassifier(random_state=random_state),GradientBoostingClassifier(random_state=random_state)]clf_names = ['DT', 'LR', 'KNN', 'RF', 'GBDT']for i, clf in enumerate(classifiers):clf.fit(X_train, y_train)y_test_predict = clf.predict(X_test)evaluate_print(clf_names[i] + ' | ', y_test, y_test_predict)print()
登录后复制

30 个数据工程必备的Python 包

使用 Combo 包的 Stacking 模型。

clf = Stacking(classifiers, n_folds=4, shuffle_data=False,keep_original=True, use_proba=False,random_state=random_state)clf.fit(X_train, y_train)y_test_predict = clf.predict(X_test)evaluate_print('Stacking | ', y_test, y_test_predict)
登录后复制

30 个数据工程必备的Python 包

21、PyAztro

你是否需要星座数据或只是对今天的运气感到好奇? 可以使用 PyAztro 来获得这些信息! 这个包有幸运数字、幸运标志、心情等等。 这是我们人工智能算命的基础数据,哈

pip install pyaztro
登录后复制

使用以下代码访问今天的星座信息。

import pyaztropyaztro.Aztro(sign='gemini').description
登录后复制

30 个数据工程必备的Python 包

22、Faker

Faker 可用于简化生成合成数据。 许多开发人员使用这个包来创建测试的数据。

pip install Faker
登录后复制

要使用 Faker 包生成合成数据

from faker import Fakerfake = Faker()
登录后复制

生成名字

fake.name()
登录后复制

30 个数据工程必备的Python 包

每次从 Faker 类获取 .name 属性时,Faker 都会随机生成数据。

23、Fairlearn

Fairlearn 用于评估和减轻机器学习模型中的不公平性。 该软件包提供了许多查看偏差所必需的 API。

pip install fairlearn
登录后复制

然后可以使用 Fairlearn 的数据集来查看模型中有多少偏差。

from fairlearn.metrics import MetricFrame, selection_ratefrom fairlearn.datasets import fetch_adultdata = fetch_adult(as_frame=True)X = data.datay_true = (data.target == '>50K') * 1sex = X['sex']selection_rates = MetricFrame(metrics=selection_rate,y_true=y_true,y_pred=y_true,sensitive_features=sex)fig = selection_rates.by_group.plot.bar(legend=False, rot=0,title='Fraction earning over $50,000')
登录后复制

30 个数据工程必备的Python 包

Fairlearn API 有一个 selection_rate 函数,可以使用它来检测组模型预测之间的分数差异,以便我们可以看到结果的偏差。

24、tiobeindexpy

tiobeindexpy 用于获取 TIOBE 索引数据。 TIOBE 指数是一个编程排名数据,对于开发人员来说是非常重要的因为我们不想错过编程世界的下一件大事。

pip install tiobeindexpy
登录后复制

可以通过以下代码获得当月前 20 名的编程语言排名。

from tiobeindexpy import tiobeindexpy as tbdf = tb.top_20()
登录后复制

30 个数据工程必备的Python 包

25、pytrends

pytrends 可以使用 Google API 获取关键字趋势数据。如果想要了解当前的网络趋势或与我们的关键字相关的趋势时,该软件包非常有用。这个需要访问google,所以你懂的。

pip install pytrends
登录后复制

假设我想知道与关键字“Present Gift”相关的当前趋势,

from pytrends.request import TrendReqimport pandas as pdpytrend = TrendReq()keywords = pytrend.suggestions(keyword='Present Gift')df = pd.DataFrame(keywords)df
登录后复制

30 个数据工程必备的Python 包

该包将返回与关键字相关的前 5 个趋势。

26、visions

visions 是一个用于语义数据分析的 python 包。 该包可以检测数据类型并推断列的数据应该是什么。

pip install visions
登录后复制

可以使用以下代码检测数据中的列数据类型。 这里使用 seaborn 的 Titanic 数据集。

import seaborn as snsfrom visions.functional import detect_type, infer_typefrom visions.typesets import CompleteSetdf = sns.load_dataset('titanic')typeset = CompleteSet()converting everything to stringsprint(detect_type(df, typeset))
登录后复制

30 个数据工程必备的Python 包

27、Schedule

Schedule 可以为任何代码创建作业调度功能

pip install schedule
登录后复制

例如,我们想10 秒工作一次:

import scheduleimport timedef job():print("I'm working...")schedule.every(10).seconds.do(job)while True:schedule.run_pending()time.sleep(1)
登录后复制

30 个数据工程必备的Python 包

28、autocorrect

autocorrect 是一个用于文本拼写更正的 python 包,可应用于多种语言。 用法很简单,并且对数据清理过程非常有用。

pip install autocorrect
登录后复制

可以使用类似于以下代码进行自动更正。

from autocorrect import Spellerspell = Speller()spell("I'm not sleaspy and tehre is no place I'm giong to.")
登录后复制

30 个数据工程必备的Python 包

29、funcy

funcy 包含用于日常数据分析使用的精美实用功能。 包中的功能太多了,我无法全部展示出来,有兴趣的请查看他的文档。

pip install funcy
登录后复制

这里只展示一个示例函数,用于从可迭代变量中选择一个偶数,如下面的代码所示。

from funcy import select, evenselect(even, {i for i in range (20)})
登录后复制

30 个数据工程必备的Python 包

30、IceCream

IceCream 可以使调试过程更容易。该软件包在打印/记录过程中提供了更详细的输出。

pip install icecream
登录后复制

可以使用下面代码

from icecream import icdef some_function(i):i = 4 + (1 * 2)/ 10 return i + 35ic(some_function(121))
登录后复制

30 个数据工程必备的Python 包

也可以用作函数检查器。

def foo():ic()if some_function(12):ic()else:ic()foo()
登录后复制

30 个数据工程必备的Python 包

打印的详细程度非常适合分析。

总结

在本文中,总结了 30个在数据工作中有用的独特 Python 包。 大多数软件包易于使用且简单明了,但有些可能功能较多需要进一步阅读其文档,如果你有兴趣请去pypi网站搜索并查看该软件包的主页和文档,希望本文对你有所帮助。

以上是30 个数据工程必备的Python 包的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何解决Linux终端中查看Python版本时遇到的权限问题? 如何解决Linux终端中查看Python版本时遇到的权限问题? Apr 01, 2025 pm 05:09 PM

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中? 在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中? Apr 01, 2025 pm 11:15 PM

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

为什么我的代码无法获取API返回的数据?如何解决这个问题? 为什么我的代码无法获取API返回的数据?如何解决这个问题? Apr 01, 2025 pm 08:09 PM

为什么我的代码无法获取API返回的数据?在编程中,我们常常会遇到API调用时返回空值的问题,这不仅让人困惑...

Python参数注解可以使用字符串吗? Python参数注解可以使用字符串吗? Apr 01, 2025 pm 08:39 PM

Python参数注解的另类用法在Python编程中,参数注解是一种非常有用的功能,可以帮助开发者更好地理解和使用函...

Python脚本如何在特定位置清空输出到光标位置? Python脚本如何在特定位置清空输出到光标位置? Apr 01, 2025 pm 11:30 PM

Python脚本如何在特定位置清空输出到光标位置?在编写Python脚本时,如何清空之前的输出到光标位置是个常见的...

Python跨平台桌面应用开发:哪个GUI库最适合你? Python跨平台桌面应用开发:哪个GUI库最适合你? Apr 01, 2025 pm 05:24 PM

Python跨平台桌面应用开发库的选择许多Python开发者都希望开发出能够在Windows和Linux系统上都能运行的桌面应用程...

Python沙漏图形绘制:如何避免变量未定义错误? Python沙漏图形绘制:如何避免变量未定义错误? Apr 01, 2025 pm 06:27 PM

Python入门:沙漏图形绘制及输入校验本文将解决一个Python新手在沙漏图形绘制程序中遇到的变量定义问题。代码...

如何用Python高效统计并排序大型商品数据集? 如何用Python高效统计并排序大型商品数据集? Apr 01, 2025 pm 08:03 PM

数据转换与统计:高效处理大型数据集本文将详细介绍如何将一个包含商品信息的数据列表,转换为另一个包含...

See all articles