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 pd
import numpy as np
df = pd.DataFrame({'age':[18, 39, 22, 44],
'price': [1.0, 2.0, 3.0, 4.0]})
df.apply(np.sum, axis=0)
------------------------------------------------
age 123.0
price 10.0
dtype: float64
举例:对每行应用sum函数
import pandas as pd
import numpy as np
df = pd.DataFrame({'age':[18, 39, 22, 44],
'price': [1.0, 2.0, 3.0, 4.0]})
df.apply(np.sum, axis=1)
----------------------------------------------------
0 19.0
1 41.0
2 25.0
3 48.0
dtype: float64
举例:给自定义函数传递额外的参数
import pandas as pd
df = pd.DataFrame({'age':[18, 39, 22, 44],
'price': [1.0, 2.0, 3.0, 4.0]})
def custom_sum(x, param):
return x+param
df.apply(custom_sum, args=(1,))
-------------------------------------
age price
0 19 2.0
1 40 3.0
2 23 4.0
3 45 5.0