当前位置: 首页 > 问答 > Python编程 > 问答详情

python apply和map区别是什么

09月28日 03:26224人阅读
梦老师 Python编程

在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

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

python学习网,免费的在线学习python平台,欢迎关注!

来自标签:

职业技能申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

问答来自

梦老师 Python编程
好评率85% 浏览224

相关问题

Python中生成九九乘法表的方法有哪几种?
付老师 Python编程
python中如何实现用return返回多个值?
谷老师 Python编程
python中如何将华氏温度转换为摄氏温度?
黄老师 Python编程
课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部