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函数

  1. import pandas as pd
  2. import numpy as np
  3. df = pd.DataFrame({'age':[18, 39, 22, 44],
  4. 'price': [1.0, 2.0, 3.0, 4.0]})
  5. df.apply(np.sum, axis=0)
  6. ------------------------------------------------
  7. age 123.0
  8. price 10.0
  9. dtype: float64

举例:对每行应用sum函数

  1. import pandas as pd
  2. import numpy as np
  3. df = pd.DataFrame({'age':[18, 39, 22, 44],
  4. 'price': [1.0, 2.0, 3.0, 4.0]})
  5. df.apply(np.sum, axis=1)
  6. ----------------------------------------------------
  7. 0 19.0
  8. 1 41.0
  9. 2 25.0
  10. 3 48.0
  11. dtype: float64

举例:给自定义函数传递额外的参数

  1. import pandas as pd
  2. df = pd.DataFrame({'age':[18, 39, 22, 44],
  3. 'price': [1.0, 2.0, 3.0, 4.0]})
  4. def custom_sum(x, param):
  5. return x+param
  6. df.apply(custom_sum, args=(1,))
  7. -------------------------------------
  8. age price
  9. 0 19 2.0
  10. 1 40 3.0
  11. 2 23 4.0
  12. 3 45 5.0