• 技术文章 >常见问题 >Python常见问题

    python apply和map区别是什么

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-11-19 15:38:04原创2112

    在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

    4bceab89aa86a11ca03c2127b7a74af.png

    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函数之后,
    #系统自动对每一个数据进行判断,判断之后输出结果

    5116746835a48ecf1d61fe702607bad.png

    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平台,欢迎关注!

    专题推荐:python apply map 区别
    上一篇:python类是函数吗 下一篇:python bind是什么意思

    相关文章推荐

    • python列表和集合的区别是什么• python函数与方法的区别是什么• python中类和对象的区别是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网