python中 apply()函数的用法
发布日期:2021-05-20 07:41:17 浏览次数:23 分类:精选文章

本文共 1642 字,大约阅读时间需要 5 分钟。

函数格式为:apply(func,*args,**kwargs)

用途:当一个函数的参数存在于一个元组或者一个字典中时,用来间接地调用这个函数,并将元组或字典中的参数按照顺序传递给函数的参数。

解析:args是一个包含函数所需位置参数的元组,必须严格按照参数的位置顺序传递,不能颠倒顺序。例如,如果函数要求参数顺序为a,b,则 args中必须严格传递(a=3,b=4),而不能以(b=4,a=3)的形式传递。*kwargs是一个包含关键字参数的字典,用于传递函数的关键字参数。如果没有提供*args,必须在*kwargs中传递对应的参数。

apply函数的执行结果返回函数func的返回值。

def function(a, b):    print(a, b)

示例:

apply(function, ('good', 'better'))  # 输出('good', 'better')(2, 9)
apply(function, ('cai', 'quan'))  # 输出('cai', 'quan')
apply(function, ('cai',), {'b': 'caiquan'})  # 输出('cai', 'caiquan')
apply(function, (), {'a': 'caiquan', 'b': 'Tom'})  # 输出('caiquan', 'Tom')

在类继承和构造函数中使用apply函数:

class Rectangle:      def __init__(self, color="white", width=10, height=10):          print("create a", color, self, "sized", width, "x", height)
class RoundedRectangle(Rectangle):      def __init__(self, **kw):          apply(Rectangle.__init__, (self,), kw)

示例:

rect = Rectangle(color="green", height=100, width=100)  # 输出:create a green <__main__.Rectangle instance at 0x0678FA08> sized 100 x 100
rect = RoundedRectangle(color="blue", height=20)  # 输出:create a blue <__main__.RoundedRectangle instance at 0x06620468> sized 10 x 20

在Pandas Dataframe中使用apply函数:

import pandas as pd
import numpy as np
data = [
[1, 2, 3],
[5, 4, 1],
[3, 2, 2]
]
df = pd.DataFrame(data, columns=['A', 'B', 'C'])

应用lambda函数计算每列数据范围:

f = lambda x: (x - np.min(x)) / (np.max(x) - np.min(x))
print(df)

默认axis=0,计算每列的数据范围:

df1 = df.copy()
df1 = df1.apply(f, axis=1) # 计算每行(每列)的范围,输出示例见下文

axis=1(行)计算每列范围:

df2 = df.copy()
df2 = df2.apply(f, axis=2) # 按行计算各列范围,输出示例见下文

默认axis=0,默认按列计算范围:

df3 = df.copy()
df3 = df3.apply(f) #,默认按列(axis=0)计算每列范围

上一篇:trick(十六)、静态方法、类方法、属性方法
下一篇:Python的内置函数(四十二)、 numel()

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月22日 11时17分08秒