
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.2 DataFrame 表格型数据结构
3.2.1 DataFrame是什么
Series是由一组数据与一组索引(行索引)组成的数据结构,而DataFrame是由一组数据与一对索引(行索引和列索引)组成的表格型数据结构。之所以叫表格型数据结构,是因为DataFrame的数据形式和Excel的数据存储形式很相近,接下来的章节主要围绕DataFrame这种表格型数据结构展开。下面就是一个简单的DataFrame数据结构。

上面这种数据结构和Excel的数据结构很像,既有行索引又有列索引,由行索引和列索引确定唯一值。如果把上面这种结构用Excel表展示如下表所示。

3.2.2 创建一个DataFrame
创建DataFrame使用的方法是pd.DataFrame(),通过给DataFrame()方法传入不同的对象即可实现。
传入一个列表
传入一个列表的实现如下所示。

只传入一个单一列表时,该列表的值会显示成一列,且行和列都是从0开始的默认索引。
传入一个嵌套列表

当传入一个嵌套列表时,会根据嵌套列表数显示成多列数据,行、列索引同样是从0开始的默认索引。列表里面嵌套的列表也可以换成元组。

指定行、列索引
如果只给DataFrame()方法传入列表,DataFrame()方法的行、列索引都是默认值,则可以通过设置columns参数自定义列索引,设置index参数自定义行索引。

传入一个字典
传入一个字典的实现如下所示。

直接以字典的形式传入DataFrame时,字典的key值就相当于列索引,这个时候如果没有设置行索引,行索引还是使用从0开始的默认索引,同样可以使用index参数自定义行索引,代码如下:

3.2.3 获取DataFrame的行、列索引
利用columns方法获取DataFrame的列索引。

利用index方法获取DataFrame的行索引。

3.2.4 获取DataFrame的值
获取DataFrame的值就是获取DataFrame中的某些行或列,有关行、列的选择在第6章会有详细讲解。