pandas01 - Series和DataFrame

数据分析三剑客(三个模块):numpy、pandas、matplotlib;前两个属于数据分析,展示数据,后一个用于画图;

pandas中有两个常用的类:Series、DataFrame;

  • Series对象是类似一维数组的,由下面两个部分组成:

    values:一组数据(ndarray类型)
    index:相关的数据索引标签
    
  • DataFrame是一个【表格型】的数据结构,可以看做是【由Series组成的字典】(共用同一个索引)。DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。

    行索引:index
    列索引:columns
    值:values(numpy的二维数组)
    


Series

1.Series的创建

两种创建方式:
方式1:

  1. 由列表或numpy数组创建

    默认索引为0到N-1的整数型索引
    # 数组
    nd = np.random.randint(0, 150, size=10)
    s = Series(nd)
    s
    
    # 列表
    l = list('qwertyuiop')
    s = Series(l)
    s
    

    这里写图片描述

  2. 通过设置index参数指定索引

    这里写图片描述

  3. name参数
    这里写图片描述

  4. copy 属性
    这里写图片描述

    当修改数组中的值时,copy属性,只在副本上修改,而不会对原
    原数组造成任何影响
    s[0] = -1
    

    这里写图片描述
    方式2

    1. 由字典创建

      这里写图片描述
      这里写图片描述


Series的索引和切片

索引

可以使用中括号取单个索引(此时返回的是元素类型),或者中括号里一个列表取多个索引(此时返回的仍然是一个Series类型)。分为显示索引和隐式索引:

  1. 显式索引

    使用index中的元素作为索引值
    使用.loc[](推荐)
    这里写图片描述

    这里写图片描述

  2. 隐式索引

    使用整数作为索引值
    使用.iloc[](推荐)
    这里写图片描述
    这里写图片描述

切片

切片分为显示切片和隐式切片:

  1. 显式切片

    这里写图片描述

  2. 隐式切片

    。。。。。。。。。。。。。。


Series的基本概念

可以把Series看成一个定长的有序字典;

可以通过shape,size,index,values等得到series的属性;
这里写图片描述
这里写图片描述
这里写图片描述


可以通过head(),tail()快速查看Series对象的样式

共同都有一个参数n,默认值为5
这里写图片描述


使用pandas读取CSV文件

这里写图片描述


当索引没有对应的值时,可能出现缺失数据显示NaN(not a number)的情况

这里写图片描述

可以使用pd.isnull(),pd.notnull(),或自带isnull(),notnull()函数检测缺失数据

这里写图片描述

这里写图片描述

Series的运算

  1. 适用于numpy的数组运算也适用于Series

    这里写图片描述

  2. Series之间的运算

    在运算中自动对齐不同索引的数据
    如果索引不对应,则补NaN
    注意:要想保留所有的index,则需要使用.add()函数
    这里写图片描述
    这里写图片描述

  3. Series.add()

    这里写图片描述


DataFrame

DataFrame的创建

最常用的方法是传递一个字典来创建。DataFrame以字典的键作为每一【列】的名称,以字典的值(一个数组)作为每一列。此外,DataFrame会自动加上每一行的索引(和Series一样)。同Series一样,若传入的列与字典的键不匹配,则相应的值为NaN。
这里写图片描述
这里写图片描述


DataFrame属性:values、columns、index、shape、ndim、dtypes

这里写图片描述


DataFrame的索引

  1. 对列进行索引

    通过类似字典的方式
    通过属性的方式
    

    可以将DataFrame的列获取为一个Series。返回的Series拥有原DataFrame相同的索引,且name属性也已经设置好了,就是相应的列名
    这里写图片描述

  2. 对行进行索引

    使用.loc[]加index来进行行索引
    使用.iloc[]加整数来进行行索引
    

    同样返回一个Series,index为原来的columns。
    这里写图片描述


Series之间的运算

在运算中自动对齐不同索引的数据
如果索引不对应,则补NaN
注意:要想保留所有的index,则需要使用.add()函数

同Series一样:

在运算中自动对齐不同索引的数据
如果索引不对应,则补NaN

下面是Python 操作符与pandas操作函数的对应表:

这里写图片描述

这里写图片描述


对元素索引的方法

使用列索引
使用行索引(iloc[3,1]相当于两个参数;iloc[[3,3]] 里面的[3,3]看做一个参数)
使用values属性(二维numpy数组)

这里写图片描述


Series与DataFrame之间的运算

使用Python操作符:以行为单位操作(参数必须是行),对所有行都有效。(类似于numpy中二维数组与一维数组的运算,但可能出现NaN)

使用pandas操作函数:

  axis=0:以列为单位操作(参数必须是列),对所有列都有效。
  axis=1:以行为单位操作(参数必须是行),对所有行都有效。

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值