DataFrame.apply函数

DataFrame.apply函数 首页 / Pandas入门教程 / DataFrame.apply函数

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

要传递给函数的对象是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      -  这是一个可选参数,用于返回布尔值。 
  • raw                  -  布尔值,默认值为False,False:将每行或每一列作为Series传递给函数。 True:传递的函数将接收ndarray对象。
  • reduce            -   bool或None,默认值None 。如果DataFrame为空,apply将使用 reduce 确定结果应为Series还是DataFrame。
  • result_type  -  {'expand','reduce','broadcast',None},默认值None 这些仅在axis = 1(列)时起作用: "expand":它定义了列表类似的结果将被转换为列。 "reduce"与" expand"相反。如果可能的话,它返回一个Series而不是扩展类似列表的结果。 "broadcast":它将结果广播到DataFrame的原始形状,原始索引,并且列将是保留。 默认值取决于所应用函数的返回值,即作为一Series结果返回的类似列表的结果。 如果 apply 返回一个Series,它将扩展到列。
  • args               -  它是一个位置参数,除了Array/Series外,还将传递给 func
  • ** kwds        -  这是一个可选的关键字参数,用于作为关键字参数传递给func。

返回值

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

链接:https://www.learnfk.comhttps://www.learnfk.com/pandas/pandas-apply.html

来源:LearnFk无涯教程网

例子:

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学微服务 -〔胡忠想〕

深入剖析Kubernetes -〔张磊〕

Android开发高手课 -〔张绍文〕

数据分析实战45讲 -〔陈旸〕

MongoDB高手课 -〔唐建法(TJ)〕

后端技术面试 38 讲 -〔李智慧〕

人人都能学会的编程入门课 -〔胡光〕

分布式系统案例课 -〔杨波〕

如何看懂一幅画 -〔罗桂霞〕

好记忆不如烂笔头。留下您的足迹吧 :)