暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python数据分析笔记#6.2.5 Pandas-函数映射

Yuan的学习笔记 2021-10-21
330



「目录」

  • 6.1 => Pandas的数据结构

  • 6.2 => Pandas的基本功能

    --------> reindex重新索引

    --------> drop丢弃数据

    --------> 索引和选取

    --------> 算术运算

    --------> 函数映射

  • 6.3 => 数学和统计方法


这一篇讲了如何将函数方法映射到DataFrame。每天巩固一小点,向前一小步。

numpy方法

Numpy的元素级数组方法也可以用于操作pandas对象

In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: frame = pd.DataFrame(np.random.randn(4, 3), index=['Shanghai''Beijing''Tokyo''New York'], columns=['b''d''e'])

In [4]: frame
Out[4]:
                 b         d         e
Shanghai  0.327023 -0.360876  0.334496
Beijing   0.814445 -1.479851  0.522563
Tokyo    -0.239327 -0.219917  0.137967
New York  1.753754 -0.263707  2.104236

np.abs可以对DataFrame中每个元素取绝对值:

In [5]: np.abs(frame)
Out[5]:
                 b         d         e
Shanghai  0.327023  0.360876  0.334496
Beijing   0.814445  1.479851  0.522563
Tokyo     0.239327  0.219917  0.137967
New York  1.753754  0.263707  2.104236


apply方法

apply方法可以将函数应用到DataFrame的各列或各行

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

In [7]: frame.apply(f)
Out[7]:
b    1.993081
d    1.259934
e    1.966269
dtype: float64

默认会在每列上执行,如果apply中传递了axis='columns'参数,则函数会在每行执行:

In [8]: frame.apply(f, axis='columns')
Out[8]:
Shanghai    0.695372
Beijing     2.294295
Tokyo       0.377295
New York    2.367943
dtype: float64


applymap方法

在原书中作者说元素级的python函数使用applymap即可,或许你仍然没理解apply和applymap之间的区别,其实是酱紫的

apply作用于DataFrame的行或列;applymap作用于DataFrame中的每一个元素(数据)

假如我们想让DataFrame中的每个数据保留两位小数:

In [9]: format = lambda x: '%.2f' % x

In [10]: frame.applymap(format)
Out[10]:
              b      d     e
Shanghai   0.33  -0.36  0.33
Beijing    0.81  -1.48  0.52
Tokyo     -0.24  -0.22  0.14
New York   1.75  -0.26  2.10

这篇笔记结束了,欢迎你后台留言和我交流啊!






往期回顾


Pandas里的算术运算





stay hungry, stay foolish.




记得点在看啦



文章转载自Yuan的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论