El uso de apply() en python

El formato de la función es: apply(func,*args,**kwargs)

Propósito: cuando los parámetros de una función existen en una tupla o diccionario, se usa para llamar a la función indirectamente, y los parámetros en la tupla o diccionario se pasan a los parámetros en orden

Análisis: args es una tupla que contiene los parámetros posicionales pasados ​​de acuerdo con los parámetros requeridos por la función. ¿Es un trabalenguas? Significa que si la posición de la función A es A(a=1,b=2), entonces esto la tupla se debe pasar estrictamente de acuerdo con el orden posicional de este parámetro (a=3, b=4), no en el orden de (b=4, a=3) kwargs es un diccionario que contiene parámetros de palabras clave, y args Si no pasado, kwargs debe pasarse, debe dejarse en blanco en lugar de args

El valor de retorno de apply es el valor de retorno de la función func función

def function(a,b):  
     print(a,b)  
 apply(function,('good','better'))  
 apply(function,(2,3+6))  
 apply(function,('cai','quan'))  
 apply(function,('cai',),{'b':'caiquan'})  
 apply(function,(),{'a':'caiquan','b':'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)  
 rect = RoundedRectangle(color="blue", height=20)  


Output:
-----------------------------------------------------------------------------------
('good', 'better')
(2, 9)
('cai', 'quan')
('cai', 'caiquan')
('caiquan', 'Tom')
create a green <__main__.Rectangle instance at 0x0678FA08> sized 100 x 100
create a blue <__main__.RoundedRectangle instance at 0x06620468> sized 10 x 20
-----------------------------------------------------------------------------------

La función de aplicación se establece por defecto en el eje como eje = 0

data= [
    [1,2,3],
    [5,4,1],
    [3,2,2]
]
df = pd.DataFrame(data,columns=['A','B','C'])<br>f = lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)) 
print(df)
 
    A  B  C
0  1  2  3
1  5  4  1
2  3  2  2

1, eje = 1

df1 = df.copy()
df1 = df1.apply(f,axis=1)   #计算的时候取的是行数
df1
         A      B     C
   0.0    0.50    1.0
   1.0    0.75    0.0
   1.0    0.00    0.0

2, eje = 2

df2 = df.copy()
df2 = df2.apply(f,axis=0)
df2

         A    B    C
0    0.0    0.0    1.0
1    1.0    1.0    0.0
2    0.5    0.0    0.5

3. Eje por defecto

df3 = df.copy()
df3 = df3.apply(f)
df3   # 在DataFrame中apply函数默认的是axis=0,取的是列数

       A    B    C
0    0.0    0.0    1.0
1    1.0    1.0    0.0
2    0.5    0.0    0.5

(df['A'] - df['A'].min())/(df['A'].max()-df['A'].min())
0    0.0
1    1.0
2    0.5
Name: A, dtype: float64 

Enlace original:

Uso de la función apply() en python - Tencent Cloud Developer Community - Tencent Cloud (tencent.com)

Tome nota para su conveniencia

Supongo que te gusta

Origin blog.csdn.net/qq_46703208/article/details/129788641
Recomendado
Clasificación