原文:
www.kdnuggets.com/2022/08/simplify-data-processing-pandas-pipeline.html
图片由作者提供
1. Google 网络安全证书 - 快速进入网络安全职业。
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. Google IT 支持专业证书 - 支持你所在组织的 IT 工作
在 R 语言中,我们使用%>%创建管道,并对数据集执行多个操作。类似地,为了创建机器学习管道,我们使用 scikit-learn 的 Pipeline 处理数据、构建和评估模型。那么,在 Python 中创建数据管道时我们用什么?我们使用 pandas 的 pipe 来应用可链式函数。
在本教程中,我们将学习创建 pandas 管道,并添加多个链式函数以执行数据处理和可视化。
我们将使用 Deepnote 环境运行代码,并展示外观清晰的 pandas 数据框。
我们将使用read_csv()
从 Kaggle 加载并展示 Mall Customer Segmentation 数据集。
import pandas as pd
data = pd.read_csv("Mall_Customers.csv")
data
它包含客户 ID、年龄、性别、收入和消费评分。
现在编写简单的 Python 函数,这些函数接受一个或多个参数。每个函数必须以数据框作为第一个参数,以创建链式管道。
-
filter_male_income: 该函数接受两个列,并筛选出年收入大于 15 的男性客户数据。
-
mean_group: 它按单列对数据框进行分组并计算均值,并删除 CustomerID 列。
-
uppercase_column_name: 它将列名转换为大写。
-
bar_plot: 该函数使用单列并绘制条形图。它在后台使用
matplotlib.pyplot
。
*# filtering by Gender and Annual Income*
def filter_male_income(dataframe, col1,col2):
return data[(data[col1] == "Male") & (data[col2] >= 15) ]
*# groupby mean and dropping ID columns*
def mean_group(dataframe, col):
return dataframe.groupby(col).mean().drop("CustomerID",axis=1)
*# changing column names to uppercase*
def uppercase_column_name(dataframe):
dataframe.columns = dataframe.columns.str.upper()
return dataframe
*# plot bar chart using pandas*
def bar_plot(dataframe, col):
return dataframe.plot(kind="bar", y=col, figsize=(15,10))
在这一部分,我们将创建一个包含单一函数的简单管道。我们将在 pandas dataframe(data)后添加.pipe()
,并添加一个有两个参数的函数。在我们的案例中,这两个列是“Gender”和“Annual Income (k$)”。
data.pipe(filter_male_income, col1="Gender", col2="Annual Income (k$)")
让我们尝试一个稍复杂的示例,向管道中添加 2 个函数。要添加其他函数,只需在第一个管道函数后添加.pipe()
。我们可以在数据管道中添加任意多个带有多个参数的管道。结果是可重复的,代码可读且简洁。
在我们的案例中,我们已筛选了数据集,按“年龄”分组,并将列名转换为大写字母。
这很简单,就像启动一个 Python 函数一样。
data.pipe(filter_male_income, col1="Gender", col2="Annual Income (k$)").pipe(
mean_group, "Age"
).pipe(uppercase_column_name)
一个完整的管道处理数据并显示一些分析结果。在我们的案例中,它是一个客户的年收入与年龄的简单条形图。我们已筛选数据框,按年龄分组,将列转换为大写字母,并绘制了条形图。
data.pipe(filter_male_income, col1="Gender", col2="Annual Income (k$)").pipe(
mean_group, "Age"
).pipe(uppercase_column_name).pipe(bar_plot,"ANNUAL INCOME (K$)")
管道可以应用于 pandas 数据框和系列。在数据处理和实验阶段,它非常有效。在这里,你可以轻松切换函数以获得最佳解决方案。管道允许我们以结构化和组织化的方式将多个函数合并为单一操作。它是干净、可读且可重复的。你可以用它来简化数据处理阶段。
在本教程中,我们学习了 pandas 管道函数及其使用案例。我们还创建了单个和多个函数的多个管道。管道函数还可以用于高级过程,如数据分析、数据可视化和机器学习任务。
Abid Ali Awan (@1abidaliawan) 是一位认证的数据科学专业人士,热衷于构建机器学习模型。目前,他专注于内容创作,并撰写关于机器学习和数据科学技术的技术博客。Abid 拥有技术管理硕士学位和电信工程学士学位。他的愿景是利用图神经网络为那些在心理健康方面挣扎的学生构建一个 AI 产品。