Heim  >  Artikel  >  Backend-Entwicklung  >  30 wichtige Python-Pakete für das Data Engineering

30 wichtige Python-Pakete für das Data Engineering

PHPz
PHPznach vorne
2023-04-12 16:58:071760Durchsuche

Python gilt als die am einfachsten zu erlernende Programmiersprache. Mithilfe von Basispaketen wie Numpy und Scipy kann man sagen, dass Python derzeit die beste Sprache für Datenverarbeitung und maschinelles Lernen ist und begeisterte Mitwirkende: Mit Hilfe von Python, das über eine große Community verfügt, die die Technologieentwicklung unterstützt, wurden zwei verschiedene Python-Pakete entwickelt, um Datenexperten bei ihrer Arbeit zu unterstützen.

30 wichtige Python-Pakete für das Data Engineering

In diesem Artikel stellen wir einige sehr einzigartige und benutzerfreundliche Python-Pakete vor, die Ihnen in vielerlei Hinsicht beim Aufbau von Datenworkflows helfen können.

1. Knockknock

Knockknock ist ein einfaches Python-Paket, das Sie benachrichtigt, wenn ein Modelltraining für maschinelles Lernen endet oder abstürzt. Wir können Benachrichtigungen über mehrere Kanäle erhalten, z. B. E-Mail, Slack, Microsoft Teams usw.

Um das Paket zu installieren, verwenden wir den folgenden Code.

pip install knockknock

Zum Beispiel können wir den folgenden Code verwenden, um den Trainingsstatus für die Modellierung maschinellen Lernens an eine bestimmte E-Mail-Adresse zu benachrichtigen.

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)

Auf diese Weise können Sie benachrichtigt werden, wenn etwas schief geht oder die Funktion abgeschlossen ist.

2. tqdm

Wenn Sie einen Fortschrittsbalken anzeigen müssen, ist tqdm genau das Richtige für Sie. Dieses Paket stellt eine einfache Fortschrittsanzeige in Ihrem Notebook oder Ihrer Eingabeaufforderung bereit.

Beginnen wir mit der Installation des Pakets.

pip install tqdm

Mit dem folgenden Code können Sie dann während der Schleife einen Fortschrittsbalken anzeigen.

from tqdm import tqdmq = 0for i in tqdm(range(10000000)):q = i +1

30 wichtige Python-Pakete für das Data Engineering

Wie das GIF oben kann es einen schönen Fortschrittsbalken auf dem Notizbuch anzeigen. Dies ist nützlich, wenn Sie eine komplexe Iteration haben und den Fortschritt verfolgen möchten.

3. Pandas-log

Panda -log kann Feedback zu grundlegenden Vorgängen von Panda geben, wie .query, .drop, .merge usw. Es basiert auf R's Tidyverse und kann zum Verständnis aller Datenanalyseschritte verwendet werden.

Installieren Sie das Paket

pip install pandas-log

Sehen Sie sich nach der Installation des Pakets das folgende Beispiel an.

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]})

Dann versuchen wir, mit dem folgenden Code eine einfache Pandas-Operationsaufzeichnung zu erstellen.

with pandas_log.enable():res = (df.drop("born", axis = 1).groupby('name'))

30 wichtige Python-Pakete für das Data Engineering

Über Pandas-Log können wir alle Ausführungsinformationen erhalten.

4. Emoji

Wie der Name schon sagt, ist Emoji ein Python-Paket, das das Parsen von Emoji-Text unterstützt. Normalerweise fällt es uns schwer, mit Emojis in Python umzugehen, aber das Emoji-Paket kann uns bei der Konvertierung helfen.

Verwenden Sie den folgenden Code, um das Emoji-Paket zu installieren.

pip install emoji

Schauen Sie sich den Code unten an:

import emojiprint(emoji.emojize('Python is :thumbs_up:'))

30 wichtige Python-Pakete für das Data Engineering

Mit diesem Paket können Sie ganz einfach Emoticons ausgeben.

5. TheFuzz

TheFuzz verwendet die Levenshtein-Distanz, um Text abzugleichen und die Ähnlichkeit zu berechnen.

pip install thefuzz

Der folgende Code beschreibt, wie TheFuzz für den Ähnlichkeitstextabgleich verwendet wird.

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

30 wichtige Python-Pakete für das Data Engineering

TheFuzz kann auch Ähnlichkeitswerte aus mehreren Wörtern gleichzeitig extrahieren.

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

30 wichtige Python-Pakete für das Data Engineering

TheFuzz eignet sich für die Ähnlichkeitserkennung von Textdaten. Diese Arbeit ist in NLP sehr wichtig.

6. Numerizer

Numerizer kann den geschriebenen numerischen Text in die entsprechende Ganzzahl oder Gleitkommazahl umwandeln.

pip install numerizer

Dann probieren wir mal ein paar Eingaben zur Konvertierung aus.

from numerizer import numerizenumerize('forty two')

30 wichtige Python-Pakete für das Data Engineering

Wenn Sie einen anderen Schreibstil verwenden, funktioniert es auch.

numerize('forty-two')

30 wichtige Python-Pakete für das Data Engineering

numerize('nine and three quarters')

30 wichtige Python-Pakete für das Data Engineering

Wenn die Eingabe kein numerischer Ausdruck ist, wird sie beibehalten:

numerize('maybe around nine and three quarters')

30 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

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

sp.posthoc_ttest(df, val_col='SepalWidth', group_col='Species', p_adjust='holm')

30 wichtige Python-Pakete für das Data Engineering

使用 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 wichtige Python-Pakete für das Data Engineering

如果匹配,则 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 wichtige Python-Pakete für das Data Engineering

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

12、Maya

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

pip install maya

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

import mayanow = maya.now()print(now)

还可以为明天日期。

tomorrow = maya.when('tomorrow')tomorrow.datetime()

30 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

16、Multiset

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

pip install multiset

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

from multiset import Multisetset1 = Multiset('aab')set1

30 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

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

docx.normalize()

30 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

使用 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 wichtige Python-Pakete für das Data Engineering

21、PyAztro

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

pip install pyaztro

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

import pyaztropyaztro.Aztro(sign='gemini').description

30 wichtige Python-Pakete für das Data Engineering

22、Faker

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

pip install Faker

要使用 Faker 包生成合成数据

from faker import Fakerfake = Faker()

生成名字

fake.name()

30 wichtige Python-Pakete für das Data Engineering

每次从 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 wichtige Python-Pakete für das Data Engineering

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

24、tiobeindexpy

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

pip install tiobeindexpy

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

from tiobeindexpy import tiobeindexpy as tbdf = tb.top_20()

30 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

该包将返回与关键字相关的前 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 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

29、funcy

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

pip install funcy

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

from funcy import select, evenselect(even, {i for i in range (20)})

30 wichtige Python-Pakete für das Data Engineering

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 wichtige Python-Pakete für das Data Engineering

也可以用作函数检查器。

def foo():ic()if some_function(12):ic()else:ic()foo()

30 wichtige Python-Pakete für das Data Engineering

Der Detaillierungsgrad ist ideal für die Analyse.

Zusammenfassung

In diesem Artikel werden 30 einzigartige Python-Pakete zusammengefasst, die bei der Datenarbeit nützlich sind. Die meisten Softwarepakete sind benutzerfreundlich und einfach und übersichtlich, einige verfügen jedoch möglicherweise über mehr Funktionen und erfordern eine weitere Lektüre ihrer Dokumentation. Wenn Sie interessiert sind, besuchen Sie bitte die Homepage und Dokumentation des Pakets I Ich hoffe, dieser Artikel wird Ihnen hilfreich sein.

Das obige ist der detaillierte Inhalt von30 wichtige Python-Pakete für das Data Engineering. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen