当前位置:

首页 > 编程开发 > 30 个数据工程必备的Python 包

30 个数据工程必备的Python 包

Python可以说是最容易入门的编程语言,在numpy,scipy等基础包的帮助下,对于数据的处理和机器学习来说Python可以说是目前最好的语言,在各位大佬和热心贡献者的帮助下Python拥有一个庞大的社区支持技术发展,开发两个各种Python包来帮助数据人员的工作。在本文中,将介绍一些非常独特的并且好用的Python包,它们可以在许多方面帮助你构建数据的工作流。1、KnockknockKnockknock是一个简单的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=["", ""], sender_email="")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网站搜索并查看该软件包的主页和文档,希望本文对你有所帮助。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Python
    相关文章 更多
    python删除一个列表里的重复元素的方法与代码示例
    python删除一个列表里的重复元素的方法与代码示例

    学习如何使用Python高效删除列表中的重复元素。本文提供5种常见方法的代码示例,涵盖保持顺序与不保持顺序的场景,适合初学者和进阶开发者参考。

    Python写接口的步骤及完整代码示例
    Python写接口的步骤及完整代码示例

    详细讲解使用Python编写Web接口的核心步骤与完整代码示例,涵盖环境准备、路由定义、数据校验、服务启动及调试测试方法。

    codex怎么读取word文档及docx文件操作教程
    codex怎么读取word文档及docx文件操作教程

    介绍如何利用编程工具读取和解析Word文档(docx格式),涵盖基础文本提取代码示例、结构化数据处理逻辑,以及处理复杂排版时的技术局限与替代方案。

    怎么在Python中调用C语言代码提升性能
    怎么在Python中调用C语言代码提升性能

    详细讲解在Python中调用C语言代码提升性能的完整实践指南,包含原理分析、编译步骤、ctypes与CFFI具体实现、性能对比及常见陷阱。

    Python与C语言的性能差异及底层原理
    Python与C语言的性能差异及底层原理

    深入解析Python与C语言在执行效率上的数量级差异,从编译机制、变量内存布局、动态类型推断到GIL锁,系统阐明底层核心原理。

    Python和C语言哪个更适合编程入门
    Python和C语言哪个更适合编程入门

    客观对比Python与C语言在心智负担、底层机制与学习反馈上的核心差异,提供清晰有据的选择标准与切实的入门学习路径。

    selenium上传文件教程本地文件路径设置方法
    selenium上传文件教程本地文件路径设置方法

    深入解析Selenium处理文件上传的技术细节,涵盖标准HTML控件的路径直接注入法与非标准控件的系统级模拟方案,提供Windows与Linux环境下的路径设置最佳实践及常见异常排查。

    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景
    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景

    针对大数据工程场景,系统对比Java、Scala与Python在执行性能、生态结合、开发效率和维护成本上的核心差异,给出清晰的架构选型依据与落地方案。

    langgraph python guide中文入门教程详解
    langgraph python guide中文入门教程详解

    本篇LangGraph Python中文入门教程详解,系统梳理StateGraph状态机定义、节点编写、边与条件路由、检查点持久化(MemorySaver)等核心机制,提供从环境安装到完整循环智能体构建的代码示例与实操指导。

    typescript是什么语言?一文看懂其定义与用途
    typescript是什么语言?一文看懂其定义与用途

    深入浅出解析TypeScript是什么语言。本文详细介绍TypeScript的语言定义、超集架构、核心运行原理、与JavaScript的核心对比以及四类典型工业级应用场景,帮助读者全面看懂TS的价值与用途。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。