Pandas-高级处理(六):map()【将自定义函数作用于Series的每个元素】、apply()【将自定义函数作用于DF的行或者列】、applymap()函数【将自定义函数作用于DF的所有元素】

本文主要是介绍Pandas-高级处理(六):map()【将自定义函数作用于Series的每个元素】、apply()【将自定义函数作用于DF的行或者列】、applymap()函数【将自定义函数作用于DF的所有元素】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、map

map()是Series对象的一个函数,DataFrame中没有map(),map()的功能是将一个自定义函数作用于Series对象的每个元素。
在这里插入图片描述

现在使用map()函数来将data1这一列的数据改为保留三位小数显示

df['data1'] = df['data1'].map(lambda x : "%.3f"%x)

在这里插入图片描述

二、apply

apply()函数的功能是将一个自定义函数作用于DataFrame的行或者列
在这里插入图片描述
eg:现在使用apply()对data1和data2相加
运行结果:
在这里插入图片描述

df.loc['total'] = df[['data1','data2']].apply(lambda x : x.sum(), axis = 0)  #注意索引行必须用loc

在这里插入图片描述

1、apply案例01

import pandas as pd
import time
# 使用pandas加载csv文件
pd_file = pd.read_csv("raw_data.csv", encoding='utf-8')
# 介绍数据集各列的数据类型,是否为空值,内存占用情况
pd_file.info() 

在这里插入图片描述

# 主要介绍数据集各列的数据统计情况(最大值、最小值、标准偏差、分位数等等)
pd_file.describe()

在这里插入图片描述

# 查看pd_file文件数据
pd_file

在这里插入图片描述

# 将‘时间’列的int64类型的时间样式数据(20211215235920)转为object类型的时间样式数据(2021-12-15 23:59:20)
pd_file['时间_Temp'] = pd_file['时间'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(str(x),'%Y%m%d%H%M%S')))
pd_file.info()

在这里插入图片描述

pd_file

在这里插入图片描述

三、applymap

applymap()函数的功能是将自定义函数作用于DataFrame的所有元素
eg:现在将DataFrame的所有元素前面加字符#

1 def add(n):
2     return '#' + str(n)
3 df.applymap(add)

运行结果:
在这里插入图片描述

这篇关于Pandas-高级处理(六):map()【将自定义函数作用于Series的每个元素】、apply()【将自定义函数作用于DF的行或者列】、applymap()函数【将自定义函数作用于DF的所有元素】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128678

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

pandas数据过滤

Pandas 数据过滤方法 Pandas 提供了多种方法来过滤数据,可以根据不同的条件进行筛选。以下是一些常见的 Pandas 数据过滤方法,结合实例进行讲解,希望能帮你快速理解。 1. 基于条件筛选行 可以使用布尔索引来根据条件过滤行。 import pandas as pd# 创建示例数据data = {'Name': ['Alice', 'Bob', 'Charlie', 'Dav

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)