2025年3月27日 星期四 甲辰(龙)年 月廿六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

python中的apply(),applymap(),map() 的用法和区别

时间:01-19来源:作者:点击数:58

在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结构的话再看是要按行还是按列进行操作来选择对应的函数即可~

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门