Python模块-Pandas(一)序列

1. Pandas模块简介

Pandas是python模块中用于快速处理数据的模块,包含很多数据结构以及数据处理的方法,可以与很多模块进行交互,如Numpy、SciPy等,其特点是对数据以表格的形式进行处理,与R语言数据框对应的方法相似。

在接下来的介绍中,默认按导入模块

2. 数据类型

在Pandas模块中,有两个主要的数据类型,一个是序列(Series,见2.1),另外一个是数据框(DadaFrame,见2.2)。

2.1 序列Series

2.1.1 序列的创建

在pandas模块中,指的是一维数值集合,和中的一维数组array的概念相似。与numpy中的一维数组不同,序列在输出时不仅有数值,还有相应的index,同时在创建序列时还会自动判断序列元素属性并在最后一行给出[在某些情况下,数据中会出现缺省值NaN,可以通过或进行判断],形式如下:

从上述的输出结果可以看出,序列在输出时每一个元素会在其index之后,按两列输出,这种形式和enumerate()输出形式相同,示例如下。

虽然最后的输出形式完全一致,但是在数据量较大的情况下,pandas在处理时耗时明显减少,运行速度要比普通的for循环迭代快上很多。

默认情况下,序列的index默认从0开始,到n-1结束。如若此种index不能满足要求,可以在创建序列时指定index内容。

从上面的实例可以看出,可以通过指定index序列来创建特定的序列,该序列index和value值一一对应,这种数据的模式和很像。在pandas模块中,可以转化字典为序列。

2.1.2 序列的取值

在序列中,序列的元素是和index一一对应的,因此我们可以根据指定的index去获取特定的元素或改变特定位置处的元素。

通过index进行序列的取值

通过index取值时,如果需要同时获取多个元素,index输入时的形式是列表,在选取时会按对应的index进行索引取值。如果index是自定义的字符串,还可以通过以下方式进行取值。

此种情况下的取值并不是标准的取值操作,有一点需要注意,那就是index必须是字符串,而且需要满足python变量命名规则,否则会抛出语法错误,而通过series[index]方式进行取值是没有任何要求,index可以为任意自定义内容。

通过逻辑表达式进行序列的取值

根据数据的特点,可以通过逻辑表达式对元素进行取值,以期获得所有数据中符合某一特定条件的部分数据

上面的例子中,获得了序列s1中所有大于0的元素

通过index更新序列的元素

2.1.3 序列的计算

上面提到了,pandas模块中序列的形式为一维数组,因此可以用numpy模块中的函数对序列进行简单的计算。

在进行数值计算时,表示两个序列对应元素相加,如果某些元素只在某一个序列中出现,该运算符的作用是对两个序列的标签进行合并,数值部分计为缺省NaN,示例如下。

从上述运行结果可以看出,相加运算不仅对序列的index进行合并,还对其进行排序。

另外一种重要的数据类型叫做数据框DatatFrame,由于数据框介绍的篇幅太长,放到了本次推送的第二篇文章里,详见。

参考书籍:

Python for Data Analysis. Data Wrangling with Pandas, NumPy, and IPython (2017, O’Reilly)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180927G1YXLY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券