apply,applymap和map的应用
总结:
apply 用在dataframe上,用于对row或者column进行计算;
(有些地方发现对于series类型数据应用apply也可以,???)
applymap 用于dataframe上,是元素级别的操作;
map (其实是python自带的)用于series上,是元素级别的操作。
在Python中如果想要对数据使用函数,可以借助apply(),applymap(),map() 来应用函数,括号里面可以是直接函数式,或者自定义函数(def)或者匿名函数(lambad)。
import pandas as pd
import numpy as np
from pandas import DataFrame
from pandas import Series
df1= DataFrame({
"sales1":[-1,2,3],
"sales2":[3,-5,7],
})
df1
1、当我们要对数据框(DataFrame)的数据进行按行或按列操作时用apply()
df1.apply(lambda x :x.max()-x.min(),axis=1)
#axis=1,表示按行对数据进行操作
#从下面的结果可以看出,我们使用了apply函数之后,系统自动按行找最大值和最小值计算,每一行输出一个值
0 4
1 7
2 4
dtype: int64
df1.apply(lambda x :x.max()-x.min(),axis=0)
#默认参数axis=0,表示按列对数据进行操作
#从下面的结果可以看出,我们使用了apply函数之后,系统自动按列找最大值和最小值计算,每一列输出一个值
sales1 4
sales2 12
dtype: int64
2、当我们要对数据框(DataFrame)的每一个数据进行操作时用applymap(),返回结果是DataFrame格式
df1.applymap(lambda x : 1 if x>0 else 0)
#从下面的结果可以看出,我们使用了applymap函数之后,
#系统自动对每一个数据进行判断,判断之后输出结果
3、当我们要对Series的每一个数据进行操作时用map()
df1.sales1.map(lambda x : 1 if x>0 else 0)
#df1.sales1就是一个Series
0 0
1 1
2 1
Name: sales1, dtype: int64
【python|python apply和map方法的区别_python里的apply,applymap和map的区别】4、总结:要对数据进行应用函数时,先看数据结构是DataFrame还是Series,Seriesj结构直接用map(),DataFrame结构的话再看是要按行还是按列进行操作来选择对应的函数即可~
推荐阅读
- python|python 写入数据库_python 写入数据库
- python|贷还是不贷(如何用Python和机器学习帮你决策())
- python|python数据分析apply(),map(),applymap()用法归纳
- python|Python日记(3)——matplotlib基础入门(1)
- 机器学习|什么是One-Hot Encoding()
- python|聊聊我的 Pandas 学习经历及动手实践
- 深度学习|PyTorch 安装过程总结(2022-03-06)
- 算法|字节跳动2019春招研发编程题
- 程序员|自从用了Charles,Fiddler已经被我彻底卸载了