Excel & Python | Pandas数据结构 | 01
Series数据数据结构
Series是什么
Series是一种类似于一维数组的对象,有一组数据及一组与之相关的数据标签(即索引)组成。
上面这样的数据结构就是Series。
第一列数值是数据标签(索引),第二列是具体的数据。数据标签和数据是一一对应的。
上面的数据用Excel表展示如下表所示。
创建一个Series
创建一个Series利用的方法是pd.Series()
,通过给Series()
传入不同的对象即可实现。
传入一个列表
传入一个列表的实现方式如下。
如果只是传入一个列表不指定数据标签,那么Series会默认使用从0开始的数据做数据标签,上面的0、1、2、3就是默认的数据标签。
指定索引
直接传入一个列表会使用默认索引,也可以通过设置index参数来自定义索引。
传入一个字典。
也可以将数据与数据标签以key:value
(字典)的形式传入,这样字典的key值就是数据标签,value就是数据值。
利用index方法获取Series的索引
获取一组数据的索引是比较常见的序列,利用index
属性就可以直接获得Series的索引值。
利用values方法获取Series的值
与索引值对应的就是获取Series的值,使用的values
属性。
DataFrame表格型数据结构
DataFrame是什么
Series是由一组数据与一组索引(行索引)组成的数据结构,而DataFrame是由一组数据与一对索引(行索引和列索引)组成的表格型数据结构。
之所以叫表格型数据结构,是因为DataFrame的数据形式和Excel的数据存储形式很相近。接下来的章节主要围绕DataFrame这种表格型数据结构展开。
下面就是一个简单的DataFrame数据结构。
上面这种数据结构和Excel的数据结构很像,既有行索引又有列索引,由行索引和列索引确定唯一值。
如果把上面的这种结果用Excel表展示如下。
创建一个DataFrame
创建DataFrame使用的方法是pd.DataFrame()
,通过给DataFrame()方法传入不同的对象即可实现。
传入一个列表
只传入一个单一列表时,该列表的值会显示成一列,且行和列都是从0开始的默认索引。
传入一个嵌套列表(二维列表)
当传入一个二维列表,会根据二维列表里显示成多列数据,行。
行、列索引依然从0开始。
列表可以更换为元组。
指定行、列索引
通过columns参数自定义列索引,index参数自定义行索引。
传入一个字典
直接以字典的形式传入DataFrame时,字典的Key值就相当于时列索引,这个时候如果没有设置行索引,行索引还是默认从0开始。
同样可以使用index参数引入行索引。
获取DataFrame的行、列索引
利用columns属性获取DataFrame的列索引
利用index属性获取DataFrame的行索引
获取DataFrame的值
获取DataFrame的值就是获取DataFrame中某些列或行,有关于行、列的选择会在后面由详细讲解。
小结
Series是什么?
可以理解为两列的一个数据结构:索引 & 数值
创建一个Series
pd.Series()
传入列表 pd.Series(['A','B','C']) # 索引默认为0,1,2
传入列表 index pd.Series(['A','B','C'],index=[0,1,2])
传入字典 pd.Series({0:'A',1:'B',2:'C'}) # key:Value <=> 索引:值
获取Series的索引和数值
通过ser对象的index和values属性
ser.index
ser.values
DataFrame是什么?
多个Series + 列索引 = DadaFrame
创建DataFrame
pd.DataFrame()
传入一个列表 Series + 列索引 # 行、列索引默认都从0开始
传入一个二列列表
设置行、列索引 columns、index
传入字典 key为columns,通过index指定行索引
获取DataFrame的索引
通过df对象的index和columns属性
(关于获取df的数值,这个会在后面讲解)