Pandas中的宝藏函数-applymap

AI入门学习

共 2635字,需浏览 6分钟

 ·

2021-08-01 13:58

applymap的用法比较简单,会对DataFrame中的每个单元格执行指定函数的操作,虽然用途不如apply广泛,但在某些场合下还是非常有用的。


 

applymap()是与map()方法相对应的专属于DataFrame对象的方法,类似map()方法传入函数、字典等,传入对应的输出结果。

 

不同的是applymap()将传入的函数等作用于整个数据框中每一个位置的元素,因此其返回结果的形状与原数据框一致。


关联阅读:

Pandas中的宝藏函数-map

Pandas中的宝藏函数-apply


 

语 法:

DataFrame.applymap(func, na_action=None, **kwargs)

参 数:

func :Python function, returns a single value from a single value.

na_action{None, ‘ignore’}, default None,If ‘ignore’, propagate NaN values, without passing them to func.

**kwargs:Additional keyword arguments to pass as keywords arguments to func.

 

返 回:DataFrame Transformed DataFrame.



官 网:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.applymap.html

 


先构造一个数据集

data = pd.DataFrame({"name":['Jack', 'Alice', 'Lily', 'Mshis', 'Gdli', 'Agosh', 'Filu', 'Mack', 'Lucy', 'Pony'],"gender":['F', 'M', 'F', 'F', 'M', 'F', 'M', 'M', 'F', 'F'],"age":[25, 34, 49, 42, 28, 23, 45, 21, 34, 29]}                     ) data name gender  age0   Jack      F   251  Alice      M   342   Lily      F   493  Mshis      F   424   Gdli      M   285  Agosh      F   236   Filu      M   457   Mack      M   218   Lucy      F   349   Pony      F   29

 

我们把姓名数据中所有的字符型数据消息小写化处理,对其他类型则原样返回:

def to_lower(x):    if isinstance(x,str):        return x.lower()    else:        return xdata.applymap(to_lower)    name gender  age0   jack      f   251  alice      m   342   lily      f   493  mshis      f   424   gdli      m   285  agosh      f   236   filu      m   457   mack      m   218   lucy      f   349   pony      f   29

 

其形状没有变化,配合applymap(),可以简洁地完成很多数据处理操作,特别是对于全部数据都要进行的统一处理,非常方便。

 

把一个数组转换成两位数的百分百形式

import numpy as npda_rn = pd.DataFrame(    {'A':np.random.randn(4),     'B':np.random.randn(4)})da_rn          A         B0 -0.166162 -0.0598241  0.530865 -0.9305232 -1.215844 -0.1422733  0.347695  0.308077
da_rn.applymap(lambda x: "{:.2%}".format(x)) A B0 -16.62% -5.98%1 53.09% -93.05%2 -121.58% -14.23%3 34.77% 30.81%
···  END  ···


长按加群,一起交流学习

推荐阅读:
一、Number(数字)
全面掌握Python基础,这一篇就够了,建议收藏
Python基础之数字(Number)超级详解
Python随机模块22个函数详解
Python数学math模块55个函数详解
二、String(字符串)
Python字符串的45个方法详解
Pandas向量化字符串操作
三、List(列表)
超级详解系列-Python列表全面解析
Python轻量级循环-列表推导式
四、Tuple(元组)
Python的元组,没想象的那么简单
五、Set(集合)
全面理解Python集合,17个方法全解,看完就够了
六、Dictionary(字典)
Python字典详解-超级完整版
七、内置函数
Python初学者必须吃透这69个内置函数!
八、正则模块
Python正则表达式入门到入魔
笔记 | 史上最全的正则表达式
八、系统操作
Python之shutil模块11个常用函数详解
Python之OS模块39个常用函数详解
九、进阶模块
【万字长文详解】Python库collections,让你击败99%的Pythoner
高手如何在Python中使用collections模块

扫描关注本号↓

浏览 14
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报