Python技术迷

Pandas 教程-Pandas DataFrame.apply()

整理:python架构师

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。

专属福利 
👉点击领取:最全Python资料合集

返回值:

它返回 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     B0    2     71    2     72    2     73    2     7
Image
 1
Image
热门推荐

Image