Panda地图,应用图和应用方法的区别

问题:

你能告诉我什么时候使用这些矢量化方法与基本的例子?我看到mapSeries方法,而其余的是DataFrame方法。我很困惑applyapplymap方法。为什么我们有两种方法将一个函数应用于DataFrame?再次,说明使用的简单例子将是非常好的!
谢谢!

回答:

从Wes McKinney的Python for Data Analysis书直接出来, 132(我强烈推荐这本书):

另一个频繁的操作是将1D数组应用于每列或一行。 DataFrame的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

许多最常见的数组统计(如和值和均值)都是DataFrame方法,因此使用apply是不必要的。
也可以使用元素式的Python函数。假设您想从帧中的每个浮点值计算格式化的字符串。您可以使用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

名称applymap的原因是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

总结起来,apply在DataFrame的行/列基础上工作,applymap在DataFrame上以元素方式工作,map在Series上以元素方式工作。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Difference between map, applymap and apply methods in Pandas

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

81 − 80 =