要使用pandas,你首先要熟悉它的两个主要数据结构:Series和DataFrame。虽然它们并不能解决所有问题,但它们为大多数应用提供了一种可靠的、易于使用的基础。

Series

Series的字符串表现形式为:索引在左,值在右。由于我们没有为数据指定索引,于是会自动创建一个0到N-1的整数型索引。可以通过values和index属性来获取其数组表示形式和索引对象:

Python

可以指定索引。与NumPy相比,你可以通过索引的方式选取Series中的单个或一组值:

Python

NumPy运算(如根据布尔型数值进行过滤,标量乘法,应用数学函数等)都会保留索引和值之间的连接:

Python

还可以将Series看成是一个定长的有序字典,如果数据被存放在一个Python字典中,也可以通过这个字典来创建Series;如果只传入一个字典,则结果Series中的索引就是原字典的健,也可以指定索引;Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系密切。

总结:结合以上程序,放在Series里的可以有:列表;列表+索引;字典;字典+索引,一共四种。

pandas的isnull和notnull函数可以用于检测缺失数据。也可以用Series的实例方法:例如:obj4.isnull()

DataFrame

DataFrame是一个表格型数据结构,含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看作由Series组成的字典(和Series共用同一个索引)。其实,DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数组结构)。有关DataFrame内部的技术细节远远超过本书所讨论的范围。

构建DataFrame的办法有很多,常用的一种是直接传入一个由等长列表或NumPy数组组成的字典

结果DataFrame会自动加上索引(跟Series一样),且全部列会被有序排列。

如果指定了列序列,则DataFrame的列就会按照指定顺序进行排列:(指定的列序列,必须在data字典里)

如果指定的列不在data字典里,就会变成NaN:

Python

通过类似字典标记的方式和属性的方式,可以将DataFrame的列获取为一个Series

也可通过行索引字段ix来获取各列

关键字del用于删除列:

Python

可以输入给DataFrame构造器的数据有:

1、二维ndarray

2、由数组、列表或元组组成的字典

3、由Series组成的字典

4、由字典组成的字典

5、字典或Series的列表等等.....

Series一样,都有index.name的属性和columns.name的属性;values属性也会以二维ndarray形式返回DataFrame中的数据;如果DataFrame各列的数据类型不同,则值数组的数据类型就会选用能兼容所有列的数据类型。