首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pandas数据分组的函数应用(df.apply()、df.agg()和df.transform()、df.applymap())

文章目录 apply()函数 介绍 样例 性能比较 apply() 数据聚合agg() 数据转换transform() applymap() 将自己定义的或其他库的函数应用于Pandas对象,有以下...3种方法: apply():逐行或逐列应用该函数 agg()和transform():聚合和转换 applymap():逐元素应用函数 apply()函数 介绍 apply函数是pandas里面所有函数中自由度最高的函数...这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据 结构传入给自己实现的函数中,我们函数中实现对Series不同属性之间的计算,返回一个结果...'> apply()的返回结果与所用的函数是相关的: 返回结果是Series对象:如上述例子应用的均值函数,就是每一行或每一列返回一个值; 返回大小相同的DataFrame:如下面自定的lambda函数...() applymap()对pandas对象逐元素应用某个函数,成为元素级函数应用; 与map()的区别: applymap()是DataFrame的实例方法 map()是Series的实例方法 例:对成绩保留小数后两位

2.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Pandas中的这3个函数,没想到竟成了我数据处理的主力

apply英文原义是"应用"的意思,作为编程语言中的函数名,似乎很多种语言都有体现,比如近日个人在学习Scala语言中apply被用作是伴生对象中自动创建对象的缺省实现,如此重要的角色也可见apply...而作用对象则取决于调用apply的对象类型,具体来说: 一个Series对象调用apply,数据处理函数作用于该Series的每个元素上,即作用对象是一个标量,实现从一个Series转换到另一个Series...; 一个DataFrame对象调用apply,数据处理函数作用于该DataFrame的每一行或者每一列上,即作用对象是一个Series,实现从一个DataFrame转换到一个Series上; 一个DataFrame...那么应用apply到一个DataFrame的每个Series,自然存在一个问题是应用到行还是列的问题,所以一个DataFrame调用apply函数需要指定一个axis参数,其中axis=0对应行方向的处理...但与此同时,map相较于apply又在另一个方面具有独特应用,即对于索引列这种特殊的Series只能应用map,而无法应用apply。 ? 2.applymap

2.4K10

Python数据分析 | Pandas数据变换高级函数

Pandas中有非常高效简易的内置函数可以完成,最核心的3个函数是map、apply和applymap。下面我们以图解的方式介绍这3个方法的应用方法。 首先,通过numpy模拟生成一组数据。...2.2 apply方法 当我们需要完成复杂的数据映射操作处理,我们会使用到Series对象的apply方法,它和map方法类似,但能够传入功能更为复杂的函数。 我们通过一个例子来理解一下。...掌握DataFrame的apply方法需要先了解一下axis的概念,DataFrame对象的大多数方法中,都会有axis这个参数,它控制了你指定的操作是沿着0轴还是1轴进行。...(3)按行计算BMI指数 那我们实际应用过程中有没有(axis=1)的情况呢?...做个总结,DataFrame中应用apply方法: 当axis=0,对每列columns执行指定函数;当axis=1,对每行row执行指定函数。

1.3K31

Pandas也能修改样式?快速给你的数据换个Style!

前言 之前的很多文章中我们都说过,Pandas与openpyxl有一个很大的区别就是openpyxl可以进行丰富的样式调整,但其实在Pandas中每一个DataFrame都有一个Style属性,我们可以通过修改该属性来给数据添加一些基本的样式...使用说明 我们可以编写样式函数,并使用CSS来控制不同的样式效果,通过修改Styler对象属性,将样式传递给DataFrame,主要有两种传递方式 Styler.applymap:逐元素 Styler.apply...所以若使用Styler.applymap,我们的函数应返回带有CSS属性-值对的单个字符串。...若使用Styler.apply,我们的函数应返回具有相同形状的Series或DataFrame,其中每个值都是具有CSS属性值对的字符串。 不会CSS?...一些例子 基本样式 首先我们创建一组没有任何样式的数据 ? 我们之前说过,DataFrame是有style属性的,所以没有做任何修改的情况下,使用df.style应该和上图一样 ?

1.8K20

「Python」矩阵、向量的循环遍历

Python中,我们可以使用map()函数对list对象中的每一个元素进行循环迭代操作,例如: In [1]: a = [i for i in range(10)] In [2]: a Out[2]...Out[3]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 那么Pandas操作中,有没有类似的功能可以实现对矩阵或者向量进行操作呢?...apply() Pandas中,无论是矩阵(DataFrame)或者是向量(Series对象都是有apply()方法的。...对DataFrame对象使用该方法的话就是对矩阵中的每一行或者每一列进行遍历操作(通过axis参数来确定是行遍历还是列遍历);对Series对象使用该方法的话,就是对Series中的每一个元素进行循环遍历操作...() 矩阵(DataFrame)的applymap()方法可以对矩阵中每一个元素进行遍历迭代操作: In [18]: df.applymap(lambda x: x * 2) Out[18]:

1.3K10

Pandas入门2

= df.iloc[0] print("series:",series,sep='\n') print("df - series:", df-series,sep='\n') 5.4 Pandas中的函数应用和映射...image.png 5.4.3 DataFrame对象applymap方法 需要1个参数,参数的数据类型为函数对象applymap方法的返回值的数据类型为DataFrame。...image.png 5.7 值集合、值计数 Series对象的unique方法可以得到值的集合,集合没有重复元素,相当于去除重复元素。...image.png Series对象的isin方法可以获得元素数据类型为布尔bool的新Series,如下图所示: ?...image.png 5.8 缺失值处理 缺失值数据大部分数据分析应用中都很常见,pandas的设计目标之一就是让缺失数据的处理任务尽量轻松。 pandas对象上的所有描述统计都排除了缺失数据。

4.2K20

pandas | 详解DataFrame中的apply与applymap方法

比如我们可以这样对DataFrame当中的某一行以及某一列应用平方这个方法。 ? 另外,apply中函数的作用域并不只局限元素,我们也可以写出作用在一行或者是一列上的函数。...同样我们也可以将apply的应用对象限定为行,同样我们需要通过传入axis来限定,我们可以传入axis='columns',也可以指定axis=1,这两者的效果是一样的。 ?...之所以我们叫它applymap而不是map,是因为Series的方法当中,已经有了map,所以为了区分创建了applymap。...这里要注意,如果将上面代码中的applymap改成apply是会报错的。报错的原因也很简单,因为apply方法的作用域不是元素而是SeriesSeries并不支持这样的操作。...总结 今天的文章我们主要介绍了pandas当中apply与applymap的使用方法, 这两个方法我们日常操作DataFrame的数据非常常用,可以说是手术刀级的api。

3K20

pandas数据清洗,排序,索引设置,数据选取

此教程适合有pandas基础的童鞋来看,很多知识点会一笔带过,不做详细解释 Pandas数据格式 Series DataFrame:每个column就是一个Series 基础属性shape,index...,columns,values,dtypes,describe(),head(),tail() 统计属性Series: count(),value_counts(),前者是统计总数,后者统计各自value...#average 值相等,取排名的平均值 #min 值相等,取排名最小值 #max 值相等,取排名最大值 #first值相等,按原始数据出现顺序排名 ---- 索引设置 reindex()...,['sepal_length','petal_width']] map与lambda alist = [1,2,3,4] map(lambda s : s+1, alist)#map就是将自定义函数应用于...Series每个元素 df['sepal_length'].map(lambda s:s*2+1)[0:3] apply和applymap apply和applymap是对dataframe的操作

3.2K20

Python可视化数据分析05、Pandas数据分析

Series对象本身及其索引都有一个name属性,该属性跟Pandas其他的关键功能的关系非常密切。 Series的索引可以通过赋值的方式修改。...如果对象中有4个数据,索引赋值也必须保证索引中有4个元素。...=["a", "b", "c"]) print(frame2) 操作DataFrame对象中列 DataFrame对象中使用columns属性获取所有的列,并显示所有列的名称 DataFrame对象的每竖列都是一个...将Index没有重复值,返回True unique 返回Index中唯一的数组 Series对象和DateFrame对象中的索引值不只是整数,还可以是字符串。...缺失数据处理 缺失数据大部分数据分析应用中都很常见,Pandas的设计目标之一就是让缺失数据的处理任务尽量轻松 Pandas使用浮点值NaN(Not a umber)表示浮点和非浮点数组中的缺失数据

2.5K20

不再纠结,一文详解pandas中的map、apply、applymap、groupby、agg...

二、非聚合类方法 这里的非聚合指的是数据处理前后没有进行分组操作,数据列的长度没有发生改变,因此本章节中不涉及groupby()。...输出多列数据 有些时候我们利用apply()会遇到希望同时输出多列数据的情况,apply()中同时输出多列实际上返回的是一个Series,这个Series中每个元素是与apply()中传入函数的返回值顺序对应的元组...结合tqdm给apply()过程添加进度条 我们知道apply()在运算实际上仍然是一行一行遍历的方式,因此计算量很大如果有一个进度条来监视运行进度就很舒服。...2.3 applymap() applymap()是与map()方法相对应的专属于DataFrame对象的方法,类似map()方法传入函数、字典等,传入对应的输出结果。...其形状没有变化: ? 配合applymap(),可以简洁地完成很多数据处理操作。

4.9K10

Pandas的apply, map, transform介绍和性能测试

arg可以是一个函数——就像apply可以取的一样——也可以是一个字典或一个Series。 na_action是指定序列的NaN值如何处理。当设置为"ignore ",arg将不会应用于NaN值。...applymap就像map一样,但是是DataFrame上以elementwise的方式工作,但由于它是由apply内部实现的,所以它不能接受字典或Series作为输入——只允许使用函数。...当整个列中只有一个组,就会发生这种情况。在这种情况下,即使 apply 函数预期返回一个Series,但最终会产生一个DataFrame。 结果类似于额外的拆栈操作。我们这里尝试重现它。...df_single_group.groupby("city").apply(lambda x: x["score"]).stack() 撰写本文,这个问题仍然没有得到解决。...总结 apply提供的灵活性使其大多数场景中成为非常方便的选择,所以如果你的数据不大,或者对处理时间没有硬性的要求,那就直接使用apply吧。

1.9K30

(数据科学学习手札69)详解pandas中的map、apply、applymap、groupby、agg

apply()串行过程中实际处理的是每一行数据而不是Series.apply()那样每次处理单个值),注意在处理多个值要给apply()添加参数axis=1: def generate_descriptive_statement...● 结合tqdm给apply()过程添加进度条   我们知道apply()在运算实际上仍然是一行一行遍历的方式,因此计算量很大如果有一个进度条来监视运行进度就很舒服,(数据科学学习手札53)Python...2.3  applymap()   applymap()是与map()方法相对应的专属于DataFrame对象的方法,类似map()方法传入函数、字典等,传入对应的输出结果,不同的是applymap()...其形状没有变化: ?   配合applymap(),可以简洁地完成很多数据处理操作。...当变量为1个传入名称字符串即可,当为多个传入这些变量名称列表,DataFrame对象通过groupby()之后返回一个生成器,需要将其列表化才能得到需要的分组后的子集,如下面的示例: #按照年份和性别对婴儿姓名数据进行分组

5K60

3大利器详解-mapapplyapplymap

Pandas三大利器-map、apply、applymap 我们利用pandas进行数据处理的时候,经常会对数据框中的单行、多行(列也适用)甚至是整个数据进行某种相同方式的处理,比如将数据中的sex字段中男替换成...DataFrame对象的大多数方法中,都会有axis这个参数,它控制了你指定的操作是沿着0轴还是1轴进行。...DF型数据的apply操作总结: 当axis=0,对每列columns执行指定函数;当axis=1,对每行row执行指定函数。...对每个Series执行结果后,会将结果整合在一起返回(若想有返回值,定义函数需要return相应的值) apply实现需求 通过apply方法实现上面的性别转换需求。...applymap DF数据加1 applymap函数用于对DF型数据中的每个元素执行相同的函数操作,比如下面的加1: ? 保留2位有效数字 ?

57910

Pandas入门(二)

一个是根据数据框中某一列或者某一行排序,这个就和Excel中的排序是一样的,但是它排序的结果是扩展到整个数据表的,不是按照单独一行或者一列排序,如果要对行或者列单独排序,可以首先把行或者列索引出来,然后排序...# apply, applymap, map 这三个函数中,前两个是针对DataFrame使用的, 而map是针对Series使用的。 首先看一下函数文档,也就基本清楚他们怎么用了。...(func) Series.map(arg, na_action=None) apply函数是将一个函数func,应用到DataFrame的元素中,其中axis指定数据的维度,其他几个参数不常用,这里不说了...applymap是将函数func直接应用到每一个元素中;map函数是将值和某个Series对应起来,下面看个栗子。...注意这里grouped是一个SeriesGroupBy 对象,具体统计的时候,需要用SeriesGroupBy 的方法。

1.2K50
领券