美文网首页生信
python数据科学03-pandas对象初识

python数据科学03-pandas对象初识

作者: 小贝学生信 | 来源:发表于2021-10-12 13:59 被阅读0次

Pandas是在NumPy基础上建立的新程序库,提供了一种高效的DataFrame数据结构


1、Pandas对象类型

import numpy as np
import pandas as pd

1.1 Series对象

  • Series可以理解为有名字属性的一维数组。
  • 所以本质还是一维的向量,不过向量里的每个元素都有自己的名字/id

关于显式索引与隐式索引
(1) 隐式索引:对于一个列表/数组而言,隐式索引就是表征顺序位置的信息。第一个元素的隐式索引永远是0、第二个元素的隐式索引永远是1......
(2) 显式索引:对于Pandas里的Series对象的每个元素,除了自然就有的隐式索引信息,还有自己的名字id充当显示索引,可供方便调用对象子集。
(3)不要将Series对象想的太复杂,对应R语言,就是一个有名字的字符串~~

  • Series的名字属性称之为index属性
(1)创建series对象

pd.Series(data, index = index),其中data与index可以是list/array,本身可以是多种数据类型,但各自内部要保持一致,且二者长度相同。

如果不设置index参数,则默认与隐式索引的值相同。此外还可以设置name=""的参数,增加Series对象的name属性。

(2)series对象取子集
  • 按隐式索引取


  • 按显式索引取
    按照显示索引的切片方法取子集时,为左闭右闭(起始均包括),如下示例


  • 当series对象的index也是整数类型时,就容易与隐式索引混淆,这里我们可以使用索引器
    .loc():只按显式索引取;.iloc():只按隐式索引取

1.2 DataFrame对象

  • pandas的DataFrame对象就可以类比于R语言的data.frame对象(numpy的二维数组则可类比于R里的matrix对象)
  • 从构成角度来看,DataFrame可视为由多个等长,且index属性相同的Series组成;每个Series视为一列~
  • DataFrame的行名(column)和列名(index)可作为显示索引调用
(1)创建DataFrame对象
  • pd.DataFrame({"col1" : s1, "col2" : s2, ...})
(2)DataFrame对象取子集
  • 建议使用索引器的方法
    .loc:显式索引、.iloc:隐式索引

  • 如果只是想取DataFrame对象的列,下面的操作更简单~


2、 Series与DataFrame的简单运算

  • 由于Series与DataFrame有index(以及column)属性,所以它们之间的运算需要考虑这些属性配对~

2.1 Series运算

  • 简单运算


2.2 Series间的运算

  • 按照索引配对的元素进行计算,没有配对的,则返回NA值(可在使用numpy运算函数时设置fill_value参数以填充NA值)

DataFrame对象的简单运算以及DataFrame对象之间的运算与上面类似就不展开了

2.2 DataFrame与Series的运算

  • 简单来说,就是DataFrame按行/列进行与Series对象的运算


    示例数据
  • 对于python的内置运算符,默认按照DataFrame的每行(column属性)进行与目标Series(index属性)的配对计算,如果不匹配则返回NA值


  • 对于numpy提供的运算函数,可通过设置axis参数交代是按照DataFrame的行/列进行计算

3、 关于NaN值,以及相关函数

  • NaN(Not a Number):表示缺失值,可能因各种原因而为收集到数据;pd


  • 如上笔记,NaN值参与的任何运算返回的都将是NaN值。因此十分有必要对其进行下处理,pandas提供了如下四种方法
    isnull():判断是否为NaN
    notnull:判断是否不是NaN
    dropna:去除数据里的缺失值
    fillna:对数据里的NaN值进行填充

相关文章

网友评论

    本文标题:python数据科学03-pandas对象初识

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