python apply函数

apply函数, 也就是应用函数, 功能非常强大;

先来解读官方文档: apply函数主要用来处理dataframe形式的数据

def apply(self, func, axis=0, broadcast=None, raw=False, reduce=None,
          result_type=None, args=(), **kwds):
    """
    Apply a function along an axis of the DataFrame.

  
    Parameters
    ----------
    func : function
        Function to apply to each column or row.
    axis : {0 or 'index', 1 or 'columns'}, default 0
        Axis along which the function is applied:

        * 0 or 'index': apply function to each column.
        * 1 or 'columns': apply function to each ro

 

 官方文档很多, 但是常用的用法形式是:   

dataframe.apply(func,axis=0) 

表示: 默认(默认axis=0)的情况下将dataframe表中的每一列的每一个元素分别作为实参传入函数func, 然后得出结果返回;

当axis=1时, 表示将dataframe表中的每一行的每一个元素分别作为实参传入函数func, 然后得出结果返回;

注意: 函数func()形参和实参只能有一个; 每一列/每一行的每一个元素  作为 一个元素 分别 传入函数

 

如下例子:

import pandas as np

aa = np.DataFrame( [  [1,2,3],[4,5,6],[7,8,9]    ], index=['A','B','C'],columns=['a','b','c'] )
print(aa)

"""
输出结果:
   a  b  c
A  1  2  3
B  4  5  6
C  7  8  9

"""

def func(x):

    return x.min()**2   # 返回最小值的平方

# 将aa中的每一列的元素的每一个元素传入函数func中, 求出这一列最小值然后平方返回给函数
num = aa.apply(func,axis=0) 
print(num)
"""
输出结果:
a    1
b    4
c    9

"""

num1 = aa.apply(func,axis=1) # 将aa中的每一行的元素传入函数func中, 求出这一行最小值然后平方返回给函数
print(num1)
"""
输出结果:
A     1
B    16
C    49

"""

 

 

你可能感兴趣的:(python,apply)