此文是 ten-Minutes-to-pandas 下半部分的翻译。上半部分请看:《数据挖掘比赛(4)ten Minutes to pandas中文版上》
紧接上文的数据,如下:
以下下半部分正文开始:
操作(Operations)
更多内容请看:《Basic section on Binary Ops》
统计(Stats)
通常情况下,这些操作的对象不包括缺失值
描述性统计信息
|
|
指定轴向
在其他轴上执行相同操作
自动对应维度
对具有不同维度和需要对齐的对象操作时,pandas会自动地沿着特定的维度进行广播(注:其实就是运算啦)
(注:.shift操作会对数据进行移动,空出的位置用nan代替)
|
|
(注: .sub 表示 减去 )
函数应用(Apply)
把函数应用到数据上
使用已有函数
|
|
(注:np.cumsum的使用方法)
使用匿名函数
|
|
(注:lambda表达式,建议百度)
直方图(Histogramming)
更多内容请查阅 《Histogramming and Discretization》
|
|
(注:Histogramming翻译过来是叫直方图。这里value_counts返回的数据中说明了 5 出现了 3 次, 2 出现了 2 次等等,虽无图形,但实际上却是是直方图的表示)
字符串方法(String Methods)
Series对象的 str属性 中集成了一系列用于处理字符串的方法,如下代码所示,能够很方便对对象中的每个元素进行处理。注意到,通常情况下在 str属性中的 模式匹配(pattern-matching)默认使用了 正则表达式(regular expressions)。更多内容请查阅 《Vectorized String Methods》
|
|
|
|
数据合并(Merge)
就合并类操作(join / merge-type operations)而言,pandas提供了各种工具能方便地对Series,DataFrame,和 Panel对象 进行各种逻辑演算来进行数据合并 。更多内容请查阅《Merging section》
(注:上面这段话在原文中放在concat的开头,为逻辑和结构上的完整和流畅,我这里放到了这边)
Concat
用 concat() 把pandas对象联系(Concatenating)起来
|
|
|
|
Join
SQL形式的连接。更多内容请查阅《Database style joining》
示例一
|
|
|
|
|
|
示例二
另一个例子如下:
|
|
|
|
Append
向 dataframe对象添加行。更多内容请查阅 《Appending》
|
|
分组(Grouping)
对分组操作,我们指的是包含以一个或多个步骤的过程:
- 根据某些标准把数据切分(Splitting)成不同组别
- 给每个组别独立地应用(Applying)函数
- 将结果组合(Combining)成同一数据结构
更多内容请查看 《Grouping section》
|
|
一列
分组,然后对各个分组结果应用函数(sum)
多列
根据多列分组,形成层次索引,从而可以对其使用函数。
数据重组(Reshaping)
更多内容请查看 《Hierarchical Indexing》 和 《Reshaping》
Stack
|
|
|
|
对于一个 “stacked” 的 DataFrame 或者 Series 对象 (它们的索引是层次索引),stack()操作的逆操作是 unstack(),它默认情况下只处理末级层次的索引。
|
|
数据透视表(Pivot Tables)
更多内容请查阅 Pivot Tables
|
|
我们可以很简便地从数据中得到数据透视表
时间序列(Time Series)
在频率转换重采样时,pandas具有简单强大有效的作用(比如说,把秒级采样的数据转换成 5分钟级别的数据)。这在金融领域非常常见,当然也不仅局限于此。更多内容请查阅 《Time Series section》
时分秒
|
|
(注:上图只截取了一部分的数据)
|
|
时区
时区表示
|
|
|
|
时区转换
|
|
时期转换(period)
|
|
时间戳转换(timestamp)
函数应用
在 时期(period)和时间戳(timestamp)转换时有一些方便的算术函数可以使用。在下面的例子中,我们把以季度为频率的数据转换成以季度末月为频率的数据。
分类型数据(categorical)
从 0.15版本开始,pandas的dataframe对象开始支持分类性数据(categorical data)。更多内容请查阅 《categorical introduction》 和 《API documentation》
转换
将原始grade数据转换成分类型数据
重命名
给分类型数据重命名为更有意义的名字。(通过 Series.cat.categories 来指派位置)
数据修整
给分类型数据重排序,同时填补缺失值。(默认情况下, Series.cat 方法会返回一个新的Series类型 )
排序问题
给分类型排序是按照 categories 的顺序,而不是按照字典顺序
归类
按照分类列来数据归类时,空的类别也会显示出来。
作图(Plotting)
更多内容请看《Plotting》
基本画图
|
|
|
|
dataframe作图
在dataframe对象里,plot()可以很方便地画出所有有标签的列。
数据读写(Getting Data In/Out)
CSV
写入
把数据写进 CSV文件。更多内容请查阅 《Writing to a csv file》
读出
将数据从 csv文件 中读出。更多内容请查阅 《Reading from a csv file》
HDF5
更多内容请看 《HDFStores》
写入
|
|
读出
|
|
Excel
更多内容请看 《MS Excel》
写入
|
|
读出
|
|
陷阱(Gotchas)
如果你试着做这样的操作,你会得到如下信息。
更多信心请查看 《Comparisons》 和 《Gotchas》