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 """