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)
领取专属 10元无门槛券
私享最新 技术干货