当前位置: 首页 > news >正文

【Pandas】Apply自定义行数

文章目录

    • 1. Series的apply方法
    • 2. DataFrame的apply方法
      • 2.1 针对列使用apply
      • 2.2 针对行使用apply


  • Pandas提供了很多数据处理的API,但当提供的API不能满足需求的时候,需要自己编写数据处理函数, 这个时候可以使用apply函数
  • apply函数可以接收一个自定义函数, 可以将DataFrame的行/列数据传递给自定义函数处理 apply函数类似于编写一个for循环,
  • 遍历行/列的每一个元素,但比使用for循环效率高很多

1. Series的apply方法

单个参数的apply自定义函数使用方法:

import pandas as pd 
# 1. 数据准备
df = pd.DataFrame({'a':[10,20,30],'b':[20,30,40]
})
# 2. 函数定义
def my_sq(x):'''求平方'''return x**2
# 3. 调用apply并传入函数对象
sq = df['a'].apply(my_sq)'''
0    100
1    400
2    900
Name: a, dtype: int64
'''

多个参数的apply自定义函数使用方法:

# 1. 定义一个函数,包含两个参数
def my_exp(x,e):return x**e
# 2. 使用apply调用函数,并使用键值对的方式传入参数
ex = df['a'].apply(my_exp,e=2)

2. DataFrame的apply方法

DataFrame的apply自定义函数和Series自定义行数使用方法并无明显区别,但是,二者的工作原理不同。

# df和my_sq在上文定义
df.apply(my_sq)
'''a     b
0  100   400
1  400   900
2  900  1600
'''

Series的apply自定义方法是针对每个元素调用函数,
而DataFrame的apply自定义方法是针对DF的行或者列调用函数,具体是针对行还是针对列,要取决于传入的参数。

apply函数有axis参数,当

  • axis=0(默认值)时,默认针对每一列调用自定义函数
  • axis=1时,针对每一行调用自定义函数

2.1 针对列使用apply

def avg_3_apply(col):x = col[0]y = col[1]z = col[2]return (x+y+z)/3# axis = 0 是默认的,不需要传参
df.apply(avg_3_apply)'''
a    20.0
b    30.0
dtype: float64
'''

2.2 针对行使用apply

def avg_2_apply(row):x = row[0]y = row[1]return (x + y) / 2df.apply(avg_2_apply, axis=1)'''
0    15.0
1    25.0
2    35.0
dtype: float64
'''
http://www.lryc.cn/news/183260.html

相关文章:

  • C#,数值计算——完全VEGAS编码的蒙特·卡洛计算方法与源程序
  • 纯css实现3D鼠标跟随倾斜
  • Pandas数据结构
  • systemverilog function的一点小case
  • 微服务的初步使用
  • 【2023年11月第四版教材】第18章《项目绩效域》(合集篇)
  • Android 11.0 mt6771新增分区功能实现三
  • 计算机网络——计算机网络的性能指标(上)-速率、带宽、吞吐量、时延
  • 每日一题 518零钱兑换2(完全背包)
  • Linux shell编程学习笔记8:使用字符串
  • 【Spring笔记03】Spring依赖注入各种数据类型
  • 2023计算机保研——双非上岸酒吧舞
  • 《计算机视觉中的多视图几何》笔记(13)
  • H5移动端购物商城系统源码 小型商城全新简洁风格全新UI 支持易支付接口
  • 全志ARM926 Melis2.0系统的开发指引⑤
  • 【AI视野·今日Robot 机器人论文速览 第四十七期】Wed, 4 Oct 2023
  • GPX可视化工具 GPX航迹预览工具
  • 学信息系统项目管理师第4版系列18_采购管理
  • 标准化数据模型
  • linux平台源码编译ffmpeg
  • Vue中如何进行拖拽与排序功能实现
  • 新款UI动态壁纸头像潮图小程序源码
  • Python逐日填补Excel中的日期并用0值填充缺失日期的数据
  • 【C语言经典100例题-70】求一个字符串的长度(指针)
  • 十天学完基础数据结构-第八天(哈希表(Hash Table))
  • flink集群部署
  • 2.证明 非单一点 Oct.2023
  • 常见的软件脱壳思路
  • Python:torch.nn.Conv1d(), torch.nn.Conv2d()和torch.nn.Conv3d()函数理解
  • scala 连接 MySQL 数据库案例