pandas进阶教程之Dataframe的apply方法

 更新时间:2022年09月23日 10:22:36   作者:凯旋.Lau  
DataFrame中的apply方法就是将函数应用到由列或行形成的一维数组上,下面这篇文章主要给大家介绍了关于pandas进阶教程之Dataframe的apply方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

apply方法介绍

方法形式为 apply(func, axis=0, raw=False, result_type=None, agrs=(), **kwargs),沿Dataframe的轴应用func函数。

传递给函数的对象是Series对象,当axis=0时,其索引是Dataframe的索引;当axis=1时,其索引是Dataframe的列。

默认情况下,result_type=None,最终返回的类型是从func函数的返回推断出来的,否则它就取决于result_type参数。

参数解析:

  • func:函数,要应用于每一列或每一行的函数。
  • axis:默认为0,0对应行索引,将func函数应用于每一列;1对应列,将函数应用于每一行。
  • raw:布尔值,默认为False,确定行或列是否作为Series或ndarray对象传递。
    • False:将每一行或每一列作为一个Series对象传递给函数;
    • True:函数将接收ndarray对象。
  • result_type:可选值有expand,reduce,broadcast,None,默认为None。
    • 默认为None时,返回结果取决于func函数的返回值,类似列表的结果将返回这些结果组成的Series,如果返回Series,则会将Series扩展为列。
    • expand:在axis=1时其作用,类似列表的结果将变成列。
    • reduce:在axis=1时其作用,如果可以,返回一个Series,而不是扩展类似列表的结果。
    • broadcast:在axis=1时其作用,结果将被广播到Dataframe的原始形状,原始行索引和列将会被保留。
  • args:元组,除了数组和Series之外,要传递给func的位置参数。
  • **kwargs:传递给func的附加关键字参数。

返回:

  • func函数沿Dataframe的给定轴应用的结果。

用例1

导入包

import pandas as pd
import numpy as np
df = pd.DataFrame([[4, 9]]*3,  columns=['A', 'B'])
df

输出:

image-20220426172924956

使用numpy中的通用函数。

df.apply(np.sqrt)   # 相当于np.sqrt(df)

输出:

image-20220426172937375

用例2

在任一轴上应用函数, 返回由类似列表的结果组成的Series。

df.apply(np.sum, axis=0)

输出:

A    12
B    27
dtype: int64

df.apply(np.sum, axis=1)

输出:

0    13
1    13
2    13
dtype: int64

df.apply(lambda x :[1, 2], axis=1)

输出:

0    [1, 2]
1    [1, 2]
2    [1, 2]
dtype: object

用例3

传递result_type=expand,会将类似列表的结果扩展到Dataframe的列。

df.apply(lambda x : [1, 2], axis=1, result_type='expand')

输出:

image-20220426172853152

在func函数内部返回一个Series,和传递result_type=expand相似,Series的索引将作为扩展的列名。

df.apply(lambda x: pd.Series([1, 2], index=['foo', 'bar']), axis=1)

输出:

image-20220426172829809

传递result_type=broadcast,将会返回相同形状的结果,无论是列表还是标量,将沿轴进行广播,列的名称还是原始名称。

df.apply(lambda x: [1, 2], axis=1, result_type='broadcast')

输出:

image-20220426172808560

总结 

到此这篇关于pandas进阶教程之Dataframe的apply方法的文章就介绍到这了,更多相关pandas Dataframe的apply方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现自动上京东抢手机

    Python实现自动上京东抢手机

    这篇文章主要为大家详细介绍了Python实现自动上京东抢手机的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • 跟老齐学Python之一个免费的实验室

    跟老齐学Python之一个免费的实验室

    学习Python也要做实验,也就是尝试性地看看某个命令到底什么含义。在《集成开发环境(IDE)》一章中,我们介绍了Python的IDE时,给大家推荐了IDLE,进入到IDLE中,看到>>>符号,可以在后面输入一行指令。其实,这就是一个非常好的实验室。
    2014-09-09
  • Python中多线程thread与threading的实现方法

    Python中多线程thread与threading的实现方法

    这篇文章主要介绍了Python中多线程thread与threading的实现方法,很重要的应用,需要的朋友可以参考下
    2014-08-08
  • python 如何做一个识别率百分百的OCR

    python 如何做一个识别率百分百的OCR

    最近在做游戏自动化(测试),也就是游戏脚本了。主要有以下几个需求识别率百分百、速度要快、模型要小,本文就来着手实现它
    2021-05-05
  • python requests 库请求带有文件参数的接口实例

    python requests 库请求带有文件参数的接口实例

    今天小编就为大家分享一篇python requests 库请求带有文件参数的接口实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python使用PyNmap进行网络扫描的详细步骤

    Python使用PyNmap进行网络扫描的详细步骤

    使用 PyNmap 进行网络扫描是一个非常有效的方式,PyNmap 是 Nmap 工具的一个 Python 封装,它允许你在 Python 脚本中使用 Nmap 的强大功能,本文介绍了如何使用 PyNmap 进行网络扫描的详细步骤,需要的朋友可以参考下
    2024-08-08
  • 使用Python程序计算钢琴88个键的音高

    使用Python程序计算钢琴88个键的音高

    这篇文章介绍了使用Python程序计算钢琴88个键的音高,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • django中的*args 与 **kwargs使用介绍

    django中的*args 与 **kwargs使用介绍

    这篇文章主要介绍了django中的*args 与 **kwargs使用介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • PYTHON基础-时间日期处理小结

    PYTHON基础-时间日期处理小结

    PYTHON时间日期处理函数以datetime为中心, 起点或中转, 转化为目标对象, 涵盖了大多数业务场景中需要的日期转换处理,这里就为大家介绍一下,需要的朋友可以参考下
    2018-05-05
  • Python中base64与xml取值结合问题

    Python中base64与xml取值结合问题

    这篇文章主要介绍了Python中base64与xml取值结合问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12

最新评论