美文网首页
2019-06-14

2019-06-14

作者: lililililiyan | 来源:发表于2019-06-14 09:31 被阅读0次

    cite from https://www.jianshu.com/p/c384ac86c4a6
    pandas map, apply, applymap区别
    1.apply()
    当想让方程作用在一维的向量上时,可以使用apply来完成,如下所示
    In [116]: frame = DataFrame(np.random.randn(4, 3), columns=list('bde'), index=['Utah', 'Ohio', 'Texas', 'Oregon'])

    In [117]: frame
    Out[117]:
    b d e
    Utah -0.029638 1.081563 1.280300
    Ohio 0.647747 0.831136 -1.549481
    Texas 0.513416 -0.884417 0.195343
    Oregon -0.485454 -0.477388 -0.309548

    In [118]: f = lambda x: x.max() - x.min()

    In [119]: frame.apply(f)
    Out[119]:
    b 1.133201
    d 1.965980
    e 2.829781
    dtype: float64

    但是因为大多数的列表统计方程 (比如 sum 和 mean)是DataFrame的函数,所以apply很多时候不是必须的
    2.applymap()
    如果想让方程作用于DataFrame中的每一个元素,可以使用applymap().用法如下所示
    In [120]: format = lambda x: '%.2f' % x

    In [121]: frame.applymap(format)
    Out[121]:
    b d e
    Utah -0.03 1.08 1.28
    Ohio 0.65 0.83 -1.55
    Texas 0.51 -0.88 0.20
    Oregon -0.49 -0.48 -0.31

    3.map()
    map()只要是作用将函数作用于一个Series的每一个元素,用法如下所示
    In [122]: frame['e'].map(format)
    Out[122]:
    Utah 1.28
    Ohio -1.55
    Texas 0.20
    Oregon -0.31
    Name: e, dtype: object

    map只对一个序列而言的。
    apply只是整个dataframe上任意一列或多列,或者一行或多行, 即可在任意轴操作。 在一列使用apply时,跟map效果一样。 多列时只能用apply。
    applymap 在整个dataframe的每个元素使用一个函数。

    作者:氨基钠
    链接:https://www.jianshu.com/p/c384ac86c4a6
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:2019-06-14

          本文链接:https://www.haomeiwen.com/subject/uqzyfctx.html