Pandas DataFrame.apply()

2024 年 8 月 29 日 | 阅读 3 分钟

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

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

语法

参数

  • 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=Noneapply 的返回值将通过在空 Series 上调用 func 来猜测(注意:func 引发的所有异常在猜测时都会被忽略)。 如果 reduce=True,则始终返回 Series,而 reduce=False,则始终返回 DataFrame。
  • result_type: {'expand', 'reduce', 'broadcast', None},默认值 None
    这些仅在 axis=1(列)时起作用
    'expand': 它定义了将转换为列的类列表结果。
    'reduce': 它是 'expand' 的反面。 如果可能,它会返回一个 Series,而不是展开类列表结果。
    'broadcast': 它将结果广播到 DataFrame 的原始形状,原始索引和列将被保留。
    默认值 None 取决于应用函数的返回值,即作为这些 Series 返回的类列表结果。
    如果 apply 返回一个 Series,它会扩展到列。
  • args: 它是一个位置参数,除了 array/series 之外,还要传递给 func
  • **kwds: 它是一个可选的关键字参数,用于作为关键字参数传递给 func。

返回值

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

示例

输出

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