python apply和map区别是什么

图片[1]-python apply和map区别是什么-uusu优素-乐高,模型,3d打印,编程

在Python中如果想要对数据使用函数,可以借助apply()、applymap()、map()来应用函数,括号里面可以是直接函数式,或者自定义函数(def)或者匿名函数(lambad)。

importpandasaspd
importnumpyasnp
frompandasimportDataFrame
frompandasimportSeries
df1=DataFrame({
"sales1":[-1,2,3],
"sales2":[3,-5,7],
})
df1

4bceab89aa86a11ca03c2127b7a74af.png

1、当我们要对数据框(DataFrame)的数据进行按行或按列操作时用apply()。

df1.apply(lambdax:x.max()-x.min(),axis=1)
#axis=1,表示按行对数据进行操作
#从下面的结果可以看出,我们使用了apply函数之后,系统自动按行找值和最小值计算,每一行输出一个值

0 4

1 7

2 4

dtype: int64

df1.apply(lambdax:x.max()-x.min(),axis=0)
#默认参数axis=0,表示按列对数据进行操作
#从下面的结果可以看出,我们使用了apply函数之后,系统自动按列找值和最小值计算,每一列输出一个值

sales1 4

sales2 12

dtype: int64

2、当我们要对数据框(DataFrame)的每一个数据进行操作时用applymap(),返回结果是DataFrame格式。

df1.applymap(lambdax:1ifx>0else0)
#从下面的结果可以看出,我们使用了applymap函数之后,
#系统自动对每一个数据进行判断,判断之后输出结果

5116746835a48ecf1d61fe702607bad.png

3、当我们要对Series的每一个数据进行操作时用map()。

df1.sales1.map(lambdax:1ifx>0else0)
#df1.sales1就是一个Series

0 0

1 1

2 1

Name: sales1, dtype: int64

4、总结:要对数据进行应用函数时,先看数据结构是DataFrame还是Series,Seriesj结构直接用map(),DataFrame结构的话再看是要按行还是按列进行操作来选择对应的函数即可。

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容