pandas进阶–Dataframe的apply方法

文章目录

欢迎关注公众号【Python开发实战】,免费领取Python学习电子书

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

输出:

pandas进阶--Dataframe的apply方法

使用numpy中的通用函数。

df.apply(np.sqrt)

输出:

pandas进阶--Dataframe的apply方法

用例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')

输出:

pandas进阶--Dataframe的apply方法

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

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

输出:

pandas进阶--Dataframe的apply方法

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

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

输出:

pandas进阶--Dataframe的apply方法

Original: https://blog.csdn.net/qq_38727995/article/details/124459704
Author: 凯旋.Lau
Title: pandas进阶–Dataframe的apply方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/730158/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python爬虫,将天气预报可视化

    文章目录 * – 🏅 前言 – ⚔ 结果展示 – ⚔ 程序代码 – ⚔ 期望 – ⚔ 完善(2022.1.5) 🏅 前言…

    Python 2023年8月30日
    047
  • python基础之字典的删除

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢…

    Python 2023年8月2日
    034
  • Obsidan之数学公式的输入

    前言: 最近在学习专升&a…

    Python 2023年8月3日
    060
  • python中的魔法函数

    文章目录 * – + %的三种用法 + 1. %lsmagic + 2. %matplotlib inline + 3. %who %whos + 4. %store …

    Python 2023年9月4日
    066
  • python3.7的下载,以及详细的安装教程

    目录如下 * – + 一、去Python官网下载你想要安装的python版本 + 二、python的安装 + 三、cmd打开页面运行python可能存在的异常 一、去P…

    Python 2023年8月1日
    063
  • 【RocketMQ】主从同步实现原理

    主从同步的实现逻辑主要在 HAService中,在 DefaultMessageStore的构造函数中,对 HAService进行了实例化,并在start方法中,启动了 HASer…

    Python 2023年10月13日
    028
  • 学习Elasticsearch这一篇就够了(2)

    DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Spe…

    Python 2023年9月28日
    060
  • 数据处理的一般步骤

    import pandas as pd # #步骤一:提出问题 #步骤二:理解数据 # 1,导入数据库:主要函数有:pd.read_csv() pd.read_excel() # …

    Python 2023年8月7日
    046
  • 构造函数里面的条件验证

    构造函数里面的条件验证 public Gra(float l1, float l2, float l3) { if (l1 + l2 > l3 && l1 +…

    Python 2023年6月11日
    067
  • TypeError: Object of type date is not JSON serializable

    def test(request): queryset = models.EntInfo.objects.all() data = [] for i in queryset: p_…

    Python 2023年8月4日
    063
  • 对Dapper的一点改造

    微软推出的ORM, EF在我开发的项目中给我的感觉一直都是慢.优点是高度封装的底层.便于开发. Dapper在多篇性能比较的网站中.都是名列前三.缺点是手写SQL,不便于开发. 如…

    Python 2023年6月6日
    068
  • Windows上使用QEMU创建银河麒麟ARM64虚拟机完全手册

    “好记性不如烂笔头。” —— 张溥 0x00 大纲 0x00 大纲 0x01 前言 0x02 物料准备 0x03 安装 QEMU 0x04 创建虚拟磁盘 0…

    Python 2023年10月11日
    0200
  • go语言 二

    GO语言 1,函数高级,类型命名,别名 2,if-else的使用 3,包的使用 4,for循环 5,switch的使用 6,数组的基础 7,数组的使用 补充知识点: 1,go ve…

    Python 2023年6月12日
    056
  • 五、使用Python操作数据库

    (六)使用Python操作数据 程序运行时,数据是在内存中。当程序终止时,通常需将数据保存在磁盘上。为了便于程序保存和读取数据,并能直接通过条件快速查询到指定数据,数据库(Data…

    Python 2023年8月1日
    058
  • Matplotlib安装与配置

    1. Matplotlib 简介 Matplotlib 是 Python 生态系统的一个重要组成部分,是用于可视化的绘图库,它提供了一整套和 matlab 相似的命令 API 和可…

    Python 2023年9月3日
    098
  • Phoenix 对 Hbase 中表的映射

    目录 * – 1)表的关系 – 2)Hbase中创建表 test – 3)视图映射 – 4)表映射 – 数字类型说明 1…

    Python 2023年9月29日
    063
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球