网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

    这篇文章主要介绍了python中apply函数详情,该函数最有用的是第一个参数,这个参数是函数,相当于C/C++的函数指针,更多详细内容,需要的小伙伴可以参考下面文章内容

    函数原型:

    DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)


    1.该函数最有用的是第一个参数,这个参数是函数,相当于C/C++的函数指针。 

    2.这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据

    • 结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数

    • 会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构

    • 并返回。

    3.apply函数常与groupby函数一起使用,如下图所示:

    在这里插入图片描述

    4.举栗子

    对指定列进行操作:

    data=np.arange(0,16).reshape(4,4)
    data=pd.DataFrame(data,columns=['0','1','2','3'])
    def f(x):
        return x-1
    print(data)
    print(data.ix[:,['1','2']].apply(f))
        0   1   2   3
    0   0   1   2   3
    1   4   5   6   7
    2   8   9  10  11
    3  12  13  14  15
        1   2
    0   0   1
    1   4   5
    2   8   9
    3  12  13


    对行操作: 

    data=np.arange(0,16).reshape(4,4)
    data=pd.DataFrame(data,columns=['0','1','2','3'])
    def f(x):
        return x-1
    print(data)
    print(data.ix[[0,1],:].apply(f))
        0   1   2   3
    0   0   1   2   3
    1   4   5   6   7
    2   8   9  10  11
    3  12  13  14  15
       0  1  2  3
    0 -1  0  1  2
    1  3  4  5  6


    整体对列操作: 

    data=np.arange(0,16).reshape(4,4)
    data=pd.DataFrame(data,columns=['0','1','2','3'])
    def f(x):
        return x.max()
    print(data)
    print(data.apply(f))
        0   1   2   3
    0   0   1   2   3
    1   4   5   6   7
    2   8   9  10  11
    3  12  13  14  15
    0    12
    1    13
    2    14
    3    15
    dtype: int64


    整体对行操作: 

    data=np.arange(0,16).reshape(4,4)
    data=pd.DataFrame(data,columns=['0','1','2','3'])
    def f(x):
        return x.max()
    print(data)
    print(data.apply(f,axis=1))
        0   1   2   3
    0   0   1   2   3
    1   4   5   6   7
    2   8   9  10  11
    3  12  13  14  15
    0     3
    1     7
    2    11
    3    15
    dtype: int64


     


    评论 0

    暂无评论
    0
    0
    0
    立即
    投稿
    发表
    评论
    返回
    顶部