返回顶部
首页 > 资讯 > 后端开发 > Python >pandas进阶教程之Dataframe的apply方法
  • 219
分享到

pandas进阶教程之Dataframe的apply方法

2024-04-02 19:04:59 219人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录apply方法介绍用例1用例2用例3总结 apply方法介绍 方法形式为 apply(func, axis=0, raw=False, result_type=None

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方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: pandas进阶教程之Dataframe的apply方法

本文链接: https://lsjlt.com/news/120551.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作