要使用pandas,你首先要熟悉它的两个主要数据结构:Series和DataFrame。虽然它们并不能解决所有问题,但它们为大多数应用提供了一种可靠的、易于使用的基础。
Series
Series的字符串表现形式为:索引在左,值在右。由于我们没有为数据指定索引,于是会自动创建一个0到N-1的整数型索引。可以通过values和index属性来获取其数组表示形式和索引对象:
可以指定索引。与NumPy相比,你可以通过索引的方式选取Series中的单个或一组值:
NumPy运算(如根据布尔型数值进行过滤,标量乘法,应用数学函数等)都会保留索引和值之间的连接:
还可以将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:
通过类似字典标记的方式和属性的方式,可以将DataFrame的列获取为一个Series
也可通过行索引字段ix来获取各列
关键字del用于删除列:
可以输入给DataFrame构造器的数据有:
1、二维ndarray
2、由数组、列表或元组组成的字典
3、由Series组成的字典
4、由字典组成的字典
5、字典或Series的列表等等.....
Series一样,都有index.name的属性和columns.name的属性;values属性也会以二维ndarray形式返回DataFrame中的数据;如果DataFrame各列的数据类型不同,则值数组的数据类型就会选用能兼容所有列的数据类型。