「目录」
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
这篇笔记结束了,欢迎你后台留言和我交流啊!

往期回顾



stay hungry, stay foolish.
记得点在看啦

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




