欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python中apply函数详情

程序员文章站 2022-05-15 08:37:00
...

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

  1. 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函数一起使用,如下图所示:
python中apply函数详情
4.举例子
对指定列进行操作:

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

对行操作:

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

整体对列操作:

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

整体对行操作:

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

以上就是本文全部内容,希望能给大家带来帮助。