Pandas apply() 函数允许用户传递一个函数,并将其应用于 Pandas series 的每个单个值。这个函数改进了 panda 库的功能,因为它有助于根据所需的条件对数据进行分离。因此,它可以有效地用于数据科学和机器学习。

要传递给函数的对象是Series 对象,其索引要么是 DataFrame 的索引,即 axis=0,要么是 DataFrame 的列,即 axis=1。默认情况下,result_type=None,最终的返回类型是从应用的函数的返回类型推断出的。否则,它取决于 result_type 参数。

语法:

DataFrame.apply(func, axis=0, broadcast=None, raw=False, reduce=None, result_type=None, args=(), **kwds)  

参数:

  • func: 要应用于每列或每行的函数。
  • axis:

{0 或 'index',1 或 'columns'},默认值为 0

这是要应用函数的轴。它可以有两个值:

    • 0 或 'index':它将函数应用于每一列。
    • 1 或 'columns':它将函数应用于每一行。
    • broadcast: 这是一个可选参数,返回布尔值。 仅适用于聚合函数: False 或 None:返回的 Series 的长度将是索引长度或基于 axis 参数的列数。 True:结果将被广播到框架的原始形状;原始索引和列将被保留。
    • raw: bool,默认值为 False False:将每行或每列作为 Series 传递给函数。 True:传递的函数将接收 ndarray 对象。如果应用 NumPy 缩减函数,则会获得更好的性能。
    • reduce: bool 或 None,默认值为 None 它尝试应用缩减过程。如果 DataFrame 为空,则 apply 将使用 reduce 来确定结果是 Series 还是 DataFrame。 默认情况下,reduce=None,通过在空 Series 上调用 func 来猜测 apply 的返回值(注意:所有由 func 提出的异常在猜测时将被忽略)。如果 reduce=True,则始终返回 Series,而 reduce=False,始终返回 DataFrame。
    • result_type: {'expand','reduce','broadcast',None},默认值为 None 这些只在 axis=1(columns)时起作用: 'expand':它定义了要转换为列的列表形式的结果。 'reduce':它是 'expand' 的相反。如果可能,它返回一个 Series 而不是扩展列表形式的结果。 'broadcast':它将结果广播到 DataFrame 的原始形状,原始索引和列将被保留。 默认值 None 取决于应用函数的返回值,即以 Series 形式返回的类似列表的结果。 如果 apply 返回一个 Series,则会展开到列中。
    • args: 这是一个传递给 func 的位置参数,除了数组/系列之外。
    • **kwds: 这是一个可选的关键字参数,用于作为关键字参数传递给 func。

    返回值:

    它返回 DataFrame 沿给定轴应用 func 的结果。

    示例:

    info = pd.DataFrame([[2, 7]] * 4, columns=['P', 'Q'])  
    info.apply(np.sqrt)  
    info.apply(np.sum, axis=0)  
    info.apply(np.sum, axis=1)  
    info.apply(lambda x: [1, 2], axis=1)  
    info.apply(lambda x: [1, 2], axis=1, result_type='expand')  
    info.apply(lambda x: pd.Series([1, 2], index=['foo', 'bar']), axis=1)  
    info.apply(lambda x: [1, 2], axis=1, result_type='broadcast')  
    info  

    输出

         A     B
    0    2     7
    1    2     7
    2    2     7
    3    2     7

    标签: Pandas, Pandas教程, Pandas库, Pandas基础, Pandas学习, Pandas使用, Pandas指南, Pandas入门教程, Pandas模块, Pandas数据库, Pandas实战教程, Pandas用法总结, Pandas文档