zoukankan      html  css  js  c++  java
  • python中的apply(),applymap(),map() 的用法和区别

    在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结构的话再看是要按行还是按列进行操作来选择对应的函数即可~
  • 相关阅读:
    FZU OJ 1056 :扫雷游戏
    HPU 1166: 阶乘问题(一)
    常用的一些模板
    PAT天梯:L1-019. 谁先倒
    HPU 1437: 王小二的求值问题
    《编程珠玑》阅读小记(7) — 代码调优与节省空间
    《编程珠玑》阅读小记(6) — 算法设计技术
    《编程珠玑》阅读小记(5) — 编程小事
    《编程珠玑》阅读小记(4) — 编写正确的程序
    《C/C++专项练习》— (1)
  • 原文地址:https://www.cnblogs.com/yoyowin/p/13438044.html
Copyright © 2011-2022 走看看