zoukankan      html  css  js  c++  java
  • 2-Pandas之Series和DataFrame区别

    、Pandas 

      pandas的数据元素包括以下几种类型:

    类型 说明
    object 字符串或混合类型
    int 整型
    float 浮点型
    datetime 时间类型
    bool 布尔型

     

     二、Series与DataFrame区别:

    1. Series是带索引一维数组
    2. Series对象的两个重要属性是:index(索引)和value(数据值)
    3. DataFrame的任意一行或者一列就是一个Series对象

    三、创建Series对象:pd.Series(data,index=index)

      其中data可以是很多类型:

      1. 一个列表---------->pd.Series([1,2,3])
      2. 一个ndarray------->pd.Series(np.random.randint(2),index=['a','b'])
      3. 一个python字典---->pd.Series({"a":2,"b":0})
      4. 一个标量值-------->pd.Series(3,index=[1,2,3])

      Series在算数运算中会自动对齐不同索引的数据

        例如:

    1 >>> s=pd.Series([1,2,3],index=['a','b','c'])
    2 >>> a=pd.Series([4,1,0],index=['b','a','c'])
    3 >>> s+a
    4 a    2
    5 b    6
    6 c    3

           unique():返回结果是一个数组,包含Series去重后的元素

          value_counts():查看每一个唯一元素的频数

    四、创建DataFrame对象:pd.DataFrame(data,index,columns)

      与Series不同的是,DataFrame包括索引index表头columns

      其中data可以是很多类型:

      1. 包含列表、字典或者Series的字典
      2. 二维数组
      3. 一个Series对象
      4. 另一个DataFrame对象

       例如:

       1、从字典创建:

    1 >>> d = {'one':pd.Series([1,2,3],index=['a','b','c']), 'two':pd.Series([2,3,4],index=['a','b','d'])}
    2 >>> pd.DataFrame(d)
    3   one  two
    4 a  1.0  2.0
    5 b  2.0  3.0
    6 c  3.0  NaN
    7 d  NaN  4.0

        2、从字典创建

    1 >>> pd.DataFrame(d,index=['a','b'],columns=['w1','w2'])
    2     w1   w2
    3 a  NaN  NaN
    4 b  NaN  NaN
    5 >>> pd.DataFrame(d,index=['a','b'],columns=['one','two'])
    6    one  two
    7 a    1    2
    8 b    2    3

     五、DataFrame的数据筛选

      与Series类似,可通过布尔表达式按照一定条件进行筛选。不同于Series的是,DataFrame布尔筛选返回的是满足筛选条件的样本的所有列的数据(即:一返回就是一条记录)。

      上例子!

    1 >>> d = {'one':pd.Series([1,2,3],index=['a','b','c']),'two':pd.Series([2,3,4],index=['a','b','d'])}
    2 >>> pd.DataFrame(d)
    3 >>> d[d['one']<3]
    4    one  two
    5 a  1.0  2.0
    6 b  2.0  3.0

     六、DataFrame的删除和添加一列

      添加一列:(1)像字典一样通过赋值的方式执行

    1 >>> d['three']=d['one']+d['two']

             (2)使用insert()在指定位置插入一列,例如在位置1插入新的一列'new',值为0

    >>> d.insert(1,'new',np.zeros((4,1)))
    >>> d
    one  new  two  three
      a  1.0  0.0  2.0    3.0
      b  2.0  0.0  3.0    5.0
      c  3.0  0.0  NaN    NaN
      d  NaN  0.0  4.0    NaN

      删除一列:像字典一样------>使用pop()或者del(),pop()可以在删除列的基础之上将删除的列赋值给一个新的变量

     1 >>> del d['three']
     2 >>> d
     3    one  new  two
     4 a  1.0  0.0  2.0
     5 b  2.0  0.0  3.0
     6 c  3.0  0.0  NaN
     7 d  NaN  0.0  4.0
     8 >>> new = d.pop('new')
     9 >>> d
    10    one  two
    11 a  1.0  2.0
    12 b  2.0  3.0
    13 c  3.0  NaN
    14 d  NaN  4.0
    15 >>> new
    16 a    0.0
    17 b    0.0
    18 c    0.0
    19 d    0.0
    20 Name: new, dtype: float64

    七、DataFrame修改索引名:使用rename()方法

     1 >>> d
     2    one  two
     3 a  1.0  2.0
     4 b  2.0  3.0
     5 c  3.0  NaN
     6 d  NaN  4.0
     7 >>> i = {'a':'A','b':'B'}
     8 >>> d.rename(index=i)
     9    one  two
    10 A  1.0  2.0
    11 B  2.0  3.0
    12 c  3.0  NaN
    13 d  NaN  4.0
  • 相关阅读:
    业务逻辑层封装
    了解ASP.NET MVC几种ActionResult的本质:EmptyResult & ContentResult
    Facade外观模式
    了解ASP.NET MVC几种ActionResult的本质:FileResult
    示例代码浏览器5.4功能更新
    面试体验:Microsoft 篇
    Mono 2.11.3 发布包含微软的 Entity Framework
    系统架构设计师
    对数据访问层的抽象中
    说说项目中的插件思想
  • 原文地址:https://www.cnblogs.com/Cheryol/p/13378040.html
Copyright © 2011-2022 走看看