在Pandas中创建一个流水线
管道在转换和处理大量数据方面发挥了有益的作用。管道****,是一连串的数据处理机制。Pandas的管道功能允许我们把各种用户定义的Python函数串起来,以建立一个数据处理的管道。有两种方法可以在pandas中创建一个管道。通过调用.pipe()函数和通过导入pdpipe包。
通过pandas管道函数,即pipe()函数,我们可以在一行中同时调用一个以上的函数来进行数据处理。让我们来了解并通过使用pipe()函数创建一个管道。
下面是各种例子,描述了如何使用pandas创建一个管道。
示例 1:
# importing pandas library
import pandas as pd
# Create empty dataframe
df = pd.DataFrame()
# Creating a simple dataframe
df['name'] = ['Reema', 'Shyam', 'Jai',
'Nimisha', 'Rohit', 'Riya']
df['gender'] = ['Female', 'Male', 'Male',
'Female', 'Male', 'Female']
df['age'] = [31, 32, 19, 23, 28, 33]
# View dataframe
df
输出:
现在,创建数据处理的函数。
# function to find mean
def mean_age_by_group(dataframe, col):
# groups the data by a column and
# returns the mean age per group
return dataframe.groupby(col).mean()
# function to convert to uppercase
def uppercase_column_name(dataframe):
# Converts all the column names into uppercase
dataframe.columns = dataframe.columns.str.upper()
# And returns them
return dataframe
现在,使用.pipe()函数创建一个管道。
# Create a pipeline that applies both the functions created above
pipeline = df.pipe(mean_age_by_group, col='gender').pipe(uppercase_column_name)
# calling pipeline
pipeline
输出:
现在,让我们了解并通过导入pdpipe包创建一个管道。
pdpipe Python软件包为构建具有预处理条件的pandas流水线提供了一个简洁的接口。pdpipe是一个用于Python的Pandas数据框架的预处理管道包。pdpipe的API有助于用几行代码轻松分解或组成复杂的Pandas处理管道。
我们可以通过简单的编写来安装这个包。
pip install pdpipe
示例 2:
# importing the package
import pdpipe as pdp
import pandas as pd
# creating a empty dataframe named dataset
dataset = pd.DataFrame()
# Creating a simple dataframe
dataset['name'] = ['Reema', 'Shyam', 'Jai',
'Nimisha', 'Rohit', 'Riya']
dataset['gender'] = ['Female', 'Male', 'Male',
'Female', 'Male', 'Female']
dataset['age'] = [31, 32, 19, 23, 28, 33]
dataset['department'] = ['Accounts', 'Management',
'IT', 'IT', 'Management',
'Advertising']
dataset['index'] = [1, 2, 3, 4, 5, 6]
# View dataframe
dataset
输出:
使用pdpipe从数据框架中删除一个列。
# creating a pipeline and
# dropping the unwanted column
dropCol = pdp.ColDrop("index").apply(dataset)
# display the new dataframe
# after column drop
dropCol
输出:
还有另一种方法可以通过pdpipe投放列。
# creating a pipeline and
# dropping the unwanted column
dropCol2 = pdp.ColDrop("index")
# applying the ColDrop to dataframe
df2 = dropCol2(dataset)
# display dataframe
df2
输出:
在这里,该列分两步被删除。在第一步中,我们创建了一个管道,在第二步中,我们将其应用于数据框架。
示例 3:
现在我们使用pdpipe向数据框架添加一列。
# importing the package
import pdpipe as pdp
import pandas as pd
# creating a empty dataframe named dataset
dataset = pd.DataFrame()
# Creating a simple dataframe
dataset['name'] = ['Reema', 'Shyam', 'Jai',
'Nimisha', 'Rohit', 'Riya']
dataset['gender'] = ['Female', 'Male', 'Male',
'Female', 'Male', 'Female']
dataset['age'] = [31, 32, 19, 23, 28, 33]
dataset['department'] = ['Accounts', 'Management',
'IT', 'IT', 'Management',
'Advertising']
dataset['index'] = [1, 2, 3, 4, 5, 6]
# View dataframe
dataset
输出:
现在,从数据框架中丢掉这些值。
#dropping the values using ValDrop
df3 = pdp.ValDrop(['IT'],'department').apply(dataset)
#display dataframe
df3
输出:
包含’IT’值的行被删除。