DataFrame.apply
DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), kwds)**
沿着DataFrame的轴应用函数。传递给函数的对象是Series对象,其索引要么是DataFrame的索引,要么是DataFrame的列。
Parameters
| 参数 | 可选类型 | 默认值 |
|---|---|---|
| func | 应用于行或列的函数 | - |
| axis | 0/index:列;1/columns:行 | 0 |
| raw | False:以Series传递;True:以ndarray传递 | False |
| result_type | 仅在axis=1(列)时起作用: expand:类似列表的结果将变成列; reduce:如果可能,返回一个Series; broadcast:扩展到DataFrame的原始结构,原始索引和列将保留 |
None: 取决于应用函数的返回值 |
| args | tuple:要传递给func的额外参数 | - |
举例:对每列应用sum函数
import pandas as pdimport numpy as npdf = pd.DataFrame({'age':[18, 39, 22, 44],'price': [1.0, 2.0, 3.0, 4.0]})df.apply(np.sum, axis=0)------------------------------------------------age 123.0price 10.0dtype: float64
举例:对每行应用sum函数
import pandas as pdimport numpy as npdf = pd.DataFrame({'age':[18, 39, 22, 44],'price': [1.0, 2.0, 3.0, 4.0]})df.apply(np.sum, axis=1)----------------------------------------------------0 19.01 41.02 25.03 48.0dtype: float64
举例:给自定义函数传递额外的参数
import pandas as pddf = pd.DataFrame({'age':[18, 39, 22, 44],'price': [1.0, 2.0, 3.0, 4.0]})def custom_sum(x, param):return x+paramdf.apply(custom_sum, args=(1,))-------------------------------------age price0 19 2.01 40 3.02 23 4.03 45 5.0
