第5章 pandas入门

  • 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入门)