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  age
0   Jack      F   25
1  Alice      M   34
2   Lily      F   49
3  Mshis      F   42
4   Gdli      M   28
5  Agosh      F   23
6   Filu      M   45
7   Mack      M   21
8   Lucy      F   34
9   Pony      F   29

 

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

def to_lower(x):
    if isinstance(x,str):
        return x.lower()
    else:
        return x
data.applymap(to_lower)
    name gender  age
0   jack      f   25
1  alice      m   34
2   lily      f   49
3  mshis      f   42
4   gdli      m   28
5  agosh      f   23
6   filu      m   45
7   mack      m   21
8   lucy      f   34
9   pony      f   29

 

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

 

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

import numpy as np
da_rn = pd.DataFrame(
    {'A':np.random.randn(4),
     'B':np.random.randn(4)})
da_rn
          A         B
0 -0.166162 -0.059824
1  0.530865 -0.930523
2 -1.215844 -0.142273
3  0.347695  0.308077


da_rn.applymap(lambda x: "{:.2%}".format(x))
          A        B
0   -16.62%   -5.98%
1    53.09%  -93.05%
2  -121.58%  -14.23%
3    34.77%   30.81%
···  END  ···

往期精彩回顾



适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑黄海广老师《机器学习课程》课件合集
本站qq群851320808,加入微信群请扫码:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐