Python酷库之旅-第三方库Pandas(108)

目录

一、用法精讲

471、pandas.DataFrame.map方法

471-1、语法

471-2、参数

471-3、功能

471-4、返回值

471-5、说明

471-6、用法

471-6-1、数据准备

471-6-2、代码示例

471-6-3、结果输出

472、pandas.DataFrame.pipe方法

472-1、语法

472-2、参数

472-3、功能

472-4、返回值

472-5、说明

472-6、用法

472-6-1、数据准备

472-6-2、代码示例

472-6-3、结果输出

473、pandas.DataFrame.agg方法

473-1、语法

473-2、参数

473-3、功能

473-4、返回值

473-5、说明

473-6、用法

473-6-1、数据准备

473-6-2、代码示例

473-6-3、结果输出

474、pandas.DataFrame.aggregate方法

474-1、语法

474-2、参数

474-3、功能

474-4、返回值

474-5、说明

474-6、用法

474-6-1、数据准备

474-6-2、代码示例

474-6-3、结果输出

475、pandas.DataFrame.transform方法

475-1、语法

475-2、参数

475-3、功能

475-4、返回值

475-5、说明

475-6、用法

475-6-1、数据准备

475-6-2、代码示例

475-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

471、pandas.DataFrame.map方法
471-1、语法
# 471、pandas.DataFrame.map方法
pandas.DataFrame.map(func, na_action=None, **kwargs)
Apply a function to a Dataframe elementwise.

New in version 2.1.0: DataFrame.applymap was deprecated and renamed to DataFrame.map.

This method applies a function that accepts and returns a scalar to every element of a DataFrame.

Parameters:
func
callable
Python function, returns a single value from a single value.

na_action
{None, ‘ignore’}, default None
If ‘ignore’, propagate NaN values, without passing them to func.

**kwargs
Additional keyword arguments to pass as keywords arguments to func.

Returns:
DataFrame
Transformed DataFrame.
471-2、参数

471-2-1、func(必须)应用于DataFrame中每个元素的函数,可以是一个函数名,一个字典(用于映射值)或一个Series(用于将索引对齐后赋值)。

471-2-2、na_action(可选,默认值为None)指定如何处理缺失值(NaN),如果设为'ignore',则缺失值会被原样返回,不会传递给函数func,默认为None,这时缺失值会传递给func。

471-2-3、**kwargs(可选)其他关键字参数,将传递给func。

471-3、功能

        用于将一个函数应用到数据框中的每个元素,进行数据清洗、转换、生成新列等操作,如果使用字典或Series作为映射,则可以轻松地替换DataFrame中的值。

471-4、返回值

        返回一个DataFrame,其中每个元素都是应用func后的结果,如果na_action设置为'ignore',则对应的NaN值将保持不变。

471-5、说明

        无

471-6、用法
471-6-1、数据准备
471-6-2、代码示例
# 471、pandas.DataFrame.map方法
import pandas as pd
# 创建一个示例DataFrame
data = {'A': [1, 2, None, 4], 'B': [5, 6, 7, 8]}
df = pd.DataFrame(data)
# 使用map方法将每个元素加倍
result = df.map(lambda x: x * 2)
print(result)
471-6-3、结果输出
# 471、pandas.DataFrame.map方法
#      A   B
# 0  2.0  10
# 1  4.0  12
# 2  NaN  14
# 3  8.0  16
472、pandas.DataFrame.pipe方法
472-1、语法
# 472、pandas.DataFrame.pipe方法
pandas.DataFrame.pipe(func, *args, **kwargs)
Apply chainable functions that expect Series or DataFrames.

Parameters:
func
function
Function to apply to the Series/DataFrame. args, and kwargs are passed into func. Alternatively a (callable, data_keyword) tuple where data_keyword is a string indicating the keyword of callable that expects the Series/DataFrame.

*args
iterable, optional
Positional arguments passed into func.

**kwargs
mapping, optional
A dictionary of keyword arguments passed into func.

Returns:
the return type of
func.
472-2、参数

472-2-1、func(必须)一个接受DataFrame作为第一个参数的函数,该函数可以对DataFrame进行任何操作并返回一个DataFrame。

472-2-2、*args(可选)元组,传递给func的额外位置参数。

472-2-3、**kwargs(可选)传递给func的额外关键字参数。

472-3、功能

        用于将DataFrame传递给一个函数(或方法),从而实现自定义的数据处理流水线,该方法非常有用,因为它可以帮助你将多个操作链式连接起来,使代码更加清晰易读。

472-4、返回值

        返回值是func处理后的DataFrame或者其他类型的结果,具体取决于函数的实现。

472-5、说明

        无

472-6、用法
472-6-1、数据准备
472-6-2、代码示例
# 472、pandas.DataFrame.pipe方法
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 定义一个自定义函数
def add_columns(dataframe, col1, col2):
    dataframe['C'] = dataframe[col1] + dataframe[col2]
    return dataframe
# 使用pipe方法将DataFrame传递给自定义函数
result = df.pipe(add_columns, 'A', 'B')
print(result)
472-6-3、结果输出
# 472、pandas.DataFrame.pipe方法
#    A  B  C
# 0  1  4  5
# 1  2  5  7
# 2  3  6  9
473、pandas.DataFrame.agg方法
473-1、语法
# 473、pandas.DataFrame.agg方法
pandas.DataFrame.agg(func=None, axis=0, *args, **kwargs)
Aggregate using one or more operations over the specified axis.

Parameters:
funcfunction, str, list or dict
Function to use for aggregating the data. If a function, must either work when passed a DataFrame or when passed to DataFrame.apply.

Accepted combinations are:

function

string function name

list of functions and/or function names, e.g. [np.sum, 'mean']

dict of axis labels -> functions, function names or list of such.

axis{0 or ‘index’, 1 or ‘columns’}, default 0
If 0 or ‘index’: apply function to each column. If 1 or ‘columns’: apply function to each row.

*args
Positional arguments to pass to func.

**kwargs
Keyword arguments to pass to func.

Returns:
scalar, Series or DataFrame
The return can be:

scalar : when Series.agg is called with single function

Series : when DataFrame.agg is called with a single function

DataFrame : when DataFrame.agg is called with several functions.
473-2、参数

473-2-1、func(可选,默认值为None)单个函数、可调用对象、函数的列表、字典等,要应用于数据的聚合函数,可以是字符串(如'sum', 'mean', 'max', 'min'等),也可以是自定义函数,可以传递一个函数列表以应用多个聚合函数。

473-2-2、axis(可选,默认值为0){0或'index', 1或'columns'},选择聚合的方向,0表示对列进行聚合(即按行聚合),1表示对行进行聚合(即按列聚合)。

473-2-3、*args(可选)元组,传递给聚合函数的额外位置参数。

473-2-4、**kwargs(可选)传递给聚合函数的额外关键字参数。

473-3、功能

        用于对DataFrame的行或列进行聚合操作,它允许你应用一个或多个函数,对数据进行汇总,从而获得更高层次的视图,该方法特别有用于数据分析中的统计计算。

473-4、返回值

        返回一个Series或DataFrame,具体取决于参数的设置和所应用的函数。

473-5、说明

        无

473-6、用法
473-6-1、数据准备
473-6-2、代码示例
# 473、pandas.DataFrame.agg方法
# 473-1、单个聚合函数
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 对每一列应用sum聚合函数
result = df.agg('sum')
print(result)

# 473-2、多个聚合函数
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 对每一列应用多个聚合函数
result = df.agg(['sum', 'mean'])
print(result)

# 473-3、按行聚合
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 对每一行应用聚合函数
result = df.agg('sum', axis=1)
print(result)

# 473-4、应用自定义函数
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 自定义聚合函数
def custom_func(x):
    return x.max() - x.min()
# 应用自定义函数
result = df.agg(custom_func)
print(result)
473-6-3、结果输出
# 473、pandas.DataFrame.agg方法
# 473-1、单个聚合函数
# A     6
# B    15
# dtype: int64

# 473-2、多个聚合函数
#         A     B
# sum   6.0  15.0
# mean  2.0   5.0

# 473-3、按行聚合
# 0    5
# 1    7
# 2    9
# dtype: int64

# 473-4、应用自定义函数
# A    2
# B    2
# dtype: int64
474、pandas.DataFrame.aggregate方法
474-1、语法
# 474、pandas.DataFrame.aggregate方法
pandas.DataFrame.aggregate(func=None, axis=0, *args, **kwargs)
Aggregate using one or more operations over the specified axis.

Parameters:
funcfunction, str, list or dict
Function to use for aggregating the data. If a function, must either work when passed a DataFrame or when passed to DataFrame.apply.

Accepted combinations are:

function

string function name

list of functions and/or function names, e.g. [np.sum, 'mean']

dict of axis labels -> functions, function names or list of such.

axis{0 or ‘index’, 1 or ‘columns’}, default 0
If 0 or ‘index’: apply function to each column. If 1 or ‘columns’: apply function to each row.

*args
Positional arguments to pass to func.

**kwargs
Keyword arguments to pass to func.

Returns:
scalar, Series or DataFrame
The return can be:

scalar : when Series.agg is called with single function

Series : when DataFrame.agg is called with a single function

DataFrame : when DataFrame.agg is called with several functions
474-2、参数

474-2-1、func(可选,默认值为None)单个函数、可调用对象、函数的列表、字典等,要应用于数据的聚合函数,可以是字符串(如'sum', 'mean', 'max', 'min'等),也可以是自定义函数,可以传递一个函数列表以应用多个聚合函数。

474-2-2、axis(可选,默认值为0){0或'index', 1或'columns'},选择聚合的方向,0表示对列进行聚合(即按行聚合),1表示对行进行聚合(即按列聚合)。

474-2-3、*args(可选)元组,传递给聚合函数的额外位置参数。

474-2-4、**kwargs(可选)传递给聚合函数的额外关键字参数。

474-3、功能

        与agg方法的功能是相同的,主要用于对DataFrame的数据进行聚合计算,它允许用户通过一个或多个聚合函数来汇总数据,以便进行更深入的分析。

474-4、返回值

        返回一个Series或DataFrame,具体取决于所应用的函数以及输入的DataFrame的结构。

474-5、说明

        无

474-6、用法
474-6-1、数据准备
474-6-2、代码示例
# 474、pandas.DataFrame.agg方法
# 474-1、单个聚合函数
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 对每一列应用sum聚合函数
result = df.aggregate('sum')
print(result)

# 474-2、多个聚合函数
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 对每一列应用多个聚合函数
result = df.aggregate(['sum', 'mean'])
print(result)

# 474-3、按行聚合
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 对每一行应用聚合函数
result = df.aggregate('sum', axis=1)
print(result)

# 474-4、应用自定义函数
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 自定义聚合函数
def custom_func(x):
    return x.max() - x.min()
# 应用自定义函数
result = df.aggregate(custom_func)
print(result)

# 474-5、使用字典指定不同聚合函数
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 使用字典对每一列指定不同的聚合函数
result = df.aggregate({
    'A': 'sum',
    'B': 'mean'
})
print(result)
474-6-3、结果输出
# 474、pandas.DataFrame.agg方法
# 474-1、单个聚合函数
# A     6
# B    15
# dtype: int64

# 474-2、多个聚合函数
#         A     B
# sum   6.0  15.0
# mean  2.0   5.0

# 474-3、按行聚合
# 0    5
# 1    7
# 2    9
# dtype: int64

# 474-4、应用自定义函数
# A    2
# B    2
# dtype: int64

# 474-5、使用字典指定不同聚合函数
# A    6.0
# B    5.0
# dtype: float64
475、pandas.DataFrame.transform方法
475-1、语法
# 475、pandas.DataFrame.transform方法
pandas.DataFrame.transform(func, axis=0, *args, **kwargs)
Call func on self producing a DataFrame with the same axis shape as self.

Parameters:
funcfunction, str, list-like or dict-like
Function to use for transforming the data. If a function, must either work when passed a DataFrame or when passed to DataFrame.apply. If func is both list-like and dict-like, dict-like behavior takes precedence.

Accepted combinations are:

function

string function name

list-like of functions and/or function names, e.g. [np.exp, 'sqrt']

dict-like of axis labels -> functions, function names or list-like of such.

axis{0 or ‘index’, 1 or ‘columns’}, default 0
If 0 or ‘index’: apply function to each column. If 1 or ‘columns’: apply function to each row.

*args
Positional arguments to pass to func.

**kwargs
Keyword arguments to pass to func.

Returns:
DataFrame
A DataFrame that must have the same length as self.

Raises:
ValueError
If the returned DataFrame has a different length than self.
475-2、参数

475-2-1、func(必须)函数、字符串或可调用对象,应用于每一行或每一列的转换函数,可以是内置函数(如'mean'、'std')或用户自定义的函数。

475-2-2、axis(可选,默认值为0){0或'index', 1或'columns'},指定转换的方向,0或'index'表示对列进行转换(逐列处理),1或'columns'表示对行进行转换(逐行处理)。

475-2-3、*args(可选)元组,传递给转换函数的可选位置参数。

475-2-4、**kwargs(可选)传递给转换函数的可选关键字参数。

475-3、功能

        用于对DataFrame中的数据进行转换操作,能够返回与原始DataFrame结构相同的形状,在数据转换过程中,可以应用指定的函数进行逐列或逐行处理,这在数据预处理和特征工程中非常有用,以保证数据的形状不变。

475-4、返回值

        返回一个与原始DataFrame结构相同的DataFrame或Series,包含通过func应用后的转换结果。

475-5、说明

        无

475-6、用法
475-6-1、数据准备
475-6-2、代码示例
# 475、pandas.DataFrame.transform方法
# 475-1、使用内置函数进行转换
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
# 对每一列应用标准化处理
result = df.transform(lambda x: (x - x.mean()) / x.std())
print(result)

# 475-2、指定转换函数
# 使用NumPy的平方根函数进行转换
import numpy as np
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
result = df.transform(np.sqrt)
print(result)
475-6-3、结果输出
# 475、pandas.DataFrame.transform方法
# 475-1、使用内置函数进行转换
#      A    B
# 0 -1.0 -1.0
# 1  0.0  0.0
# 2  1.0  1.0

# 475-2、指定转换函数
#           A         B
# 0  1.000000  2.000000
# 1  1.414214  2.236068
# 2  1.732051  2.449490

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇夜光杯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值