美文网首页
第5章 pandas入门

第5章 pandas入门

作者: 带带吴腾跃 | 来源:发表于2020-01-08 16:37 被阅读0次
    • pandas数据结构

      • Series:一种一维第数组型对象,包含了一个值序列,并且包含了一个数据标签,称为索引。

        • 创建一个最简单的Series(S一定要大写):


          image.png
        • 访问Series中的值或索引:
          obj.values,obj.index

        • 创建一个自定义标签的Series:


          image.png
        • 可以做类似numpy风格的操作:
          布尔值过滤:obj[obj>0]
          与标量相乘:obj*2
          应用数学函数:np.exp(obj)

        • 如果你已经有数据在Python字典中,你可以用它生成一个Series:


          image.png
          • 你也可以将字典键按照你想要的顺序传递给构造函数,从而使生成的Series符合你的预期:

            image.png
            上述例子中,由于sdata中没有键'California',故期值不存在,在Series中表示为NaN
          • 我们可以使用isnullnotnull来查询值的缺失:

            image.png
          • 按位置改变Series的索引:


            image.png
      • DataFrame

        • DataFrame是一种表示矩阵的数据表,它包含已排序的列集合,每一列都可以有不同类型的数据类型。
        • 构建方法最常用的是利用包含等长度列表或Numpy数组的字典来形成DataFrame:


          image.png

        指定列顺序:


        image.png

        如果你传入的列不包含在字典中,则结果会出现缺失值。


        image.png
        • DataFrame中的每一列可以看作Series,可以按照字典型标记或属性那样检索。


          image.png
        • 选取某一行loc[]

          image.png
        • 修改列,可以赋值为标量值或者值数组(值的长度必须匹配):


          image.png
          image.png
        • 将Series赋值给一列时,Series的索引将会按照DataFrame的索引重新排列,并在空缺的地方填充缺失值:


          image.png
        • 如果被赋值的列不存在,将会生成一个新列:


          image.png
        • del:删除某一列。
          del frame['eastern']

        • 另一种构建方法,将嵌套字典赋值给DataFrame。Pandas会将字典的键作为列,内部字典的键作为行索引。


          image.png
        • 可以使用Numpy中的语法进行转置。


          image.png
    • 索引对象
      你所使用的任意数组或标签序列都可以在内部转换为索引对象

      image.png
      • 生成Index
        image.png
      • 与Python字典不同,pandas索引对象可以包含重复标签。
      • 一些索引对象的方法和属性见书P135。
    • 重建索引

      • 如果索引值之前不存在,则会引入缺失值。


        image.png
      • 重建索引时可以使用一些方法,例如ffill,将缺失值向前填充。
        image.png
      • 可以改变行索引,也可以改变列索引,使用columns关键字:
        image.png
      • 使用loc进行更为简介的标签索引,大家更倾向于这种方式:
        frame.loc[['a','b','c','d'],states]],注意最外层是[]
      • 一些reindex的方法见书P137。
    • 轴向 上删除条目

      • drop方法:
        image.png
        • 也可以从列中删除值


          image.png
    • 索引、选择与过滤

      • Series的索引与Numpy数组索引的功能类似,但是Series的索引可以不仅仅是整数。
        obj['b'], obj[1], obj[2:3](返回第第三个),obj[obj<2]
        另外Python中切片是不包含尾部的,而Series的切片则不同:obj['b':'c'],输出标签为b到c的之间的数据,包含b和c。

        image.png
      • 使用lociloc选择数据
        loc:使用轴标签来选择数据。
        iloc:使用整数标签来选择数据。

      • 一些DataFrame的其他索引方式见书P144。

    • 算数和数据对其
      标签重叠的数据相加,标签不重合的数据补缺失值。

      • 对于Series:


        image.png
      • 对于DataFrame:


        image.png
      • 使用填充值的算数方法
        可以使用fill_value参数设定不重叠的Nan值。

        image.png
        • 一些其他灵活算数方法见书P148。
    • DataFrame和Series之间的操作

      • 先来看Numpy中的多维arr与一维arr之间的操作:
        当我们从arr中减去arr[0]时,减法在每一行都进行了操作,这就是广播机制
        image.png
      • Frame与Series相减:


        image.png
    • 函数应用和映射
      Numpy的通用函数对pandas对象也有效:


      image.png
    • 排序和排名

      • sort_index方法:对index进行排序。
        在Series中:
        image.png

      在DataFrame中:


      image.png
      • sort_values方法:对值进行排序:
        对于Series:
        image.png

      对于DataFrame,可以选择一列或多列进行排序:


      image.png
    • 排名 rank
      以下默认方法不会打破平级关系,比如两个7都是排6.5名。

      image.png
      可以通过添加各种方法打破平级关系或实现其他形式的排名,见书P155。
    • 含有重复标签的轴索引
      如果含有重复的轴标签,对重复的轴标签进行索引时会返回多个值。

    • 相关性和协方差

      • corr方法求相关性。
      • cov方法求协方差。
      • corrwith方法求一列与多列之间的相关性。

    相关文章

      网友评论

          本文标题:第5章 pandas入门

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