pandas中apply/map/applymap函数

目录

apply

map

applymap

总结

apply

语法:DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), _kwargs_)**

按照DataFrame的轴应用函数,沿每一行或每一列应用,传递给函数的对象是Series。

参数func传入的是函数。参数axis = 0表示沿每一列应用,axis = 1表示沿每一行应用。其他参数详解见pandas.DataFrame.apply — pandas 1.4.2 documentation

#导入包
import numpy as np
import pandas as pd

#构造DataFrame数据
df = pd.DataFrame([[4, 9]] * 3, columns=['A', 'B'])
df

pandas中apply/map/applymap函数
#传入数组函数,返回DataFrame
print(df.apply(np.sqrt))
print()

#传入数组中聚合函数,沿axis=0轴应用,返回Series
print(df.apply(np.sum, axis=0))
print()

#传入数组中聚合函数,沿axis=1轴应用,返回Series
print(df.apply(np.sum, axis=1))
print()

pandas中apply/map/applymap函数
#传入lambda匿名函数
print(df.apply(lambda x: x.max()-x.min()))
print()

#传入自定义函数
def square(x):
    return x ** 2
print(df.apply(square))
print()

pandas中apply/map/applymap函数

语法:Series.apply(func, convert_dtype=True, args=(), _kwargs_)**

参数func传入的是函数,应用在每一个元素上。其他参数详解见pandas.Series.apply — pandas 1.4.2 documentation

#构造数据
s = pd.Series([4, 9, 16],index=['A', 'B', 'C'])
s

pandas中apply/map/applymap函数
#传入数组函数
print(s.apply(np.sqrt))
print()

#传入lambda匿名函数
print(s.apply(lambda x: x ** 2))
print()

#传入自定义函数
def square(x):
    return x ** 2
print(s.apply(square))
print()

pandas中apply/map/applymap函数

map

语法:Series.map(arg, na_action=None)

根据输入的对应关系映射Series的值,运用到Series的每个元素上。

参数arg传入的可以是函数、字典、Series。其他参数详解见pandas.Series.map — pandas 1.4.2 documentation

#构造数据
s = pd.Series(['cat', 'dog', np.nan, 'rabbit'])
s

pandas中apply/map/applymap函数
#传入字典,没有对应关系的默认为NaN
print(s.map({'cat': 'kitten', 'dog': 'puppy'}))
print()

#传入函数,没有对应关系的默认为NaN
print(s.map('I am a {}'.format))
print()

#传入函数,设置na_action='ignore'表示NA值不作转换
print(s.map('I am a {}'.format, na_action='ignore'))
print()

pandas中apply/map/applymap函数

applymap

语法:DataFrame.applymap(func, na_action=None, _kwargs_)**

参数func传入的是函数,应用在DataFrame的每个元素中,该函数接受并返回一个标量到每个元素。其他参数详解见pandas.DataFrame.applymap — pandas 1.4.2 documentationm ​​​​​​​​​​​​​​​​​​

#构造数据
df = pd.DataFrame([[4.000, 9.123]] * 3, columns=['A', 'B'])
df

pandas中apply/map/applymap函数
#数据类型转换成int
print(df.applymap(int))
print()

#传入lambda匿名函数
print(df.applymap(lambda x: len(str(x))))
print()

#传入自定义函数
def square(x):
    return x ** 2
print(df.applymap(square))
print()

pandas中apply/map/applymap函数

总结

apply:应用在DataFrame的行或列中,也可以应用在Series的每个元素中

map:应用在Series的每个元素中

applymap:应用在DataFrame的每个元素中

Original: https://blog.csdn.net/sinat_41928169/article/details/124364019
Author: 大哇唧
Title: pandas中apply/map/applymap函数

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

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

(0)

大家都在看

  • OpenCV-眼睛控制鼠标

    找来了一篇好玩的 大伙可以试试啊 如何用眼睛来控制鼠标?一种基于单一前向视角的机器学习眼睛姿态估计方法。在此项目中,每次单击鼠标时,我们都会编写代码来裁剪你们的眼睛图像。使用这些数…

    Python 2023年9月28日
    051
  • python dataframe 报错 invalid type comparison

    python 报错 invalid type comparison 解决办法 报错信息: TypeError: invalid type comparison 代码如下: impo…

    Python 2023年8月17日
    056
  • 【自然语言处理(NLP)】基于GRU实现情感分类

    ; 【自然语言处理(NLP)】基于GRU实现情感分类 作者简介:在校大学生一枚,华为云享专家,阿里云星级博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与…

    Python 2023年9月27日
    045
  • pytest测试框架系列 – Pytest pytest-assume 多重校验神器如何使用你知道吗?

    前言 注意点:pytest-assume 导包和使用都已经改变,源码注释未进行更新 场景 在一个支付场景里面,我们在商品界面进行了支付成功,想要看下支付金额是否正确、订单记录是否正…

    Python 2023年9月12日
    074
  • python+uiautomator2+pytest自动化测试框架(三)

    python+uiautomator2+pytest自动化测试框架(三) 目的解决多设备运行,并行多台设备及多用例同时进行 1、修改conftest.py 初始化设备进行了修改,根…

    Python 2023年9月12日
    048
  • python中的抽象类说明

    抽象类是一个特殊的类,只能继承,不能实例化。抽象类可以有抽象方法和通用方法。 [En] Abstract class is a special class, which can o…

    Python 2023年5月25日
    050
  • Mockito使用方法(Kotlin)

    一、为什么要使用Mockito 1.实际案例 1.1 遇到的问题 对于经常维护的项目,经常遇到一个实际问题:需求不停改变,导致架构经常需要修改某些概念的定义。 对于某些十分基础又十…

    Python 2023年10月17日
    037
  • 2_数据分析—认识pandas

    文章目录 一、认识 pandas * 1.1 pandas有两个数据类型DateFrame和Series 1.2 载入数据 1.3 查看DataFrame数据的每列的名称 1.4 …

    Python 2023年8月7日
    041
  • 利用pycharm进行视频分镜处理

    一、Hi,Flask! 在pycharm里创建新文件,命名为main.py from flask import Flask,render_template app=Flask(__…

    Python 2023年8月11日
    068
  • pygame交换式拼图设计

    运行截图 完成时候的截图 ; 游戏设计思想 在600*600的屏幕上,进行拼图划分。(可以是N * M不一定是N * N)利用鼠标来操作拼图移动 游戏设计 制作一个类:PartPi…

    Python 2023年9月22日
    048
  • 离散傅里叶变换(python numpy笔记)

    一、离散傅里叶变换(DFT) 离散傅里叶变换的正变换和逆变换: DFT是将离散信号分解为一系列离散三角函数分量,每一个分量都有对应的幅度、频率以及相位。通过所有分量叠加,可以得到原…

    Python 2023年8月23日
    058
  • 【全是套路】这才是贪吃蛇大作战最有趣的版本,你确定不看?

    导语 ​ ​ “最有趣版本”?O__O “… 唤起了记忆,唤起了忧伤。 还记得诺基亚称王的时代,拿着S40、S60系统的手机,在被窝…

    Python 2023年9月19日
    048
  • 当你编码时

    高效的编程决不是某些工具可以被取代的,每一分钟程序员都要做出决策,如果要让程序可以长久的、富有生命力、生产力的存留下来,并需要加入编程者对于决策的衡量与把控。 不主动思考代码如何更…

    Python 2023年11月5日
    045
  • 上周热点回顾(11.14-11.20)

    热点随笔: · Spring Boot框架下实现Excel服务端导入导出 (葡萄城技术团队)· 当 xxl-job 遇上 docker → 它晕了,我也乱了! (青石路)· C#多…

    Python 2023年10月14日
    045
  • 阿里云天池新人赛o2o优惠券使用预测——-进阶心得

    1 # -*- coding: utf-8 -*- 2 """ 3 Created on Wed Dec 4 14:30:36 2019 4 5 @a…

    Python 2023年6月3日
    061
  • Qt Quick中控件的定位

    参考文档:​​https://doc.qt.io/qt-6/qtquick-positioning-topic.html​​ 几种定位方式 绝对定位(通过设置x,y的值) 相对定位…

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