美文网首页
3.DataFrame对象

3.DataFrame对象

作者: 安东尼卡 | 来源:发表于2018-05-28 23:01 被阅读23次

    DataFrame这种列表式数据结构跟我们常见的Excel极为相似。其设计初衷就是将Series的使用场景由一维扩展到多维。DataFrame由按一定数序排列的多列数据组成,各列的数据类型可以有所不同

    DataFrame数据结构

    Series对象的index数组存放有每一个元素的标签,而DataFrame对象则有所不同,它有两个索引数组,第一个数组与行相关,它与Series的索引数组极为相似。每个标签与标签所在行的所有元素相关联。而第二个数组包含一系列列标签,每个标签与一列数据相关联。

    DataFrame还可以理解为一个由Series组成的字典,其中每一列的名称为字典的键,形成DataFrame的列的Series作为字典的值。进一步来说,每个Series的所有元素映射到叫做index的标签数组。

    定义DataFrame对象

    新建DataFrame对象的最常用方法是传递一个dict对象给DataFrame()构造函数。dict对象以每一列的名称作为键,每一个键都有一个数组作为值

    用dict定义DataFrame

    调用DataFrame()构造函数时可以指定columns参数

    与Series一样DataFrame创建时如果不指定index数组的标签,那么index数组将从0开始的数组作为索引。如果想用标签作为DataFrame的索引,那么创建DataFrame对象时要给index赋值

    常用的快速定义DataFrame的方法是,指定三个参数:数据矩阵、index、columns

    选取元素

    在DataFrame对象上调用columns属性可以获取对象所有列的名称;

    在DataFrame对象上调用values属性可以获取对象所有元素;

    在DataFrame对象上调用index属性可以获取对象的索引列表;

    如果想选择一列内容,把这一列的名称作为索引即可。或者用列名作为DataFrame实例的属性

    用ix属性加上行的索引可以直接获取整行的数据(在python3中用iloc属性),用一个数组指定多个索引值就能选取多行数据

    选取行数据也可用如下方法,返回DataFrame对象

    如要获取存储在DataFrame中的一个元素,需要一次指定元素所在的列名称、行的索引值或标签

    ---------------------------------------------

    为什么选取的数字为小于1的小数时和实际值不一样

    --------------------------------------------

    赋值

    理解了组成DataFrame个元素的获取方法,依照形同的逻辑就能增加或修改元素

    添加列的方法很简单,指定DataFrame实例心裂的名称,为其赋值。DataFrame新增了一个列,列名是new同时这列的所有值都赋值成12

    更新一列时,指定需要更新的列,然后需要一个数组赋给这一列

    更新单个元素的方法,选择元素,为其赋值即可

    元素的所属关系

    在Series对象介绍中,isin()方法可以判断一组函数是否属于Series对象,实际上该函数同样适用于DataFrame对象。

    得到一个只包含布尔值的DataFrame对象,其中只有满足从属关系之处的元素为True,如果将上述返回结果作为条件,将得到一个新的DataFrame只有满足条件的元素。

    删除一列

    如果想删除DataFrame对象的一整列数据,使用del命令

    筛选

    对于DataFrame对象,也可以通过指定条件筛选元素,例如,想获取所有小于指定数字的元素。返回的DataFrame中只包含所有小于2的数组,各元素位置保持布标,不符合条件的元素被替换成NaN

    DataFrame的转置

    处理列表数据时可能会用到转置操作,将行专为列,列转为行。pandas提供了一种很简单的转置方法,调用T属性就能得到一个DataFrame对象的转置对象。

    相关文章

      网友评论

          本文标题:3.DataFrame对象

          本文链接:https://www.haomeiwen.com/subject/bsenjftx.html